When writing code, how does one decide between using if/else or try/catch? For example, in checking for a file, should this be based on a method such as:
if (File.Exists("file.txt"))
{
//do stuff
}
or a try/catch block?
Another example: writing to a file can be handled via an if/else block to create a file and then write to it, or a try/catch with an assumption that the file exists. What considerations are there in choosing?
You should never use try/catch for flow control.
Generating an exception is an extremely expensive action. If/else is much faster and cleaner.