In my opinion, exceptions, as a rule, should be reserved for truly exceptional circumstances for several reasons:
- Exceptions have high performance (although this may not be a problem, for example, when working with files).
- When submitting an application and swallowing a large number of exceptions it can be very difficult to debug
- You can catch the exception you are looking for somewhere
- This can make it difficult for others to keep track of the program flow, especially if exceptions are exceeded in the call hierarchy.
Of course, in your particular case it may be wise to rely on exceptions, since checking File.Exitsts()in advance does not guarantee that the file exists when it is accessed, so you may need to include an exceptional case anyway