Question: What is the difference (if any) in writing:

```
if (File.Exists(filePath)) 
    //Something
else
    throw new FileNotFoundException();

```

And surrounding the if/else block, above, in a try brace with a catch. 

In fact, is the catch needed? If so, what would it catch? Or perhaps a better comparison is to put the if part of the above block in a try brace (without the if statement) and catch a `FileNotFoundException`, throwing up the call stack (throw).

Thanks

Answer: 
I don't see any reason to throw an exception that would be thrown anyways. It might be more useful to throw an exception with a higher level of abstraction though.
One is safer than the other.

When you check if a file exists, nothing guarantees that file is there further down the execution of the method.

If you surround it with a `Try / Catch` block, you can elegantly catch the glitch, act accordingly and wrap up any thing you want to in the `Finally` block. For example, closing the stream to the file.