Implement exception handling

Your code catches an IOException when a file cannot be accessed. You want to give more information to the caller of your code. What do you do?

Throw a new exception with more detailed info.
Throw a new exception with extra information that has the IOException as InnerException.
Use throw to rethrow the exception and save the call stack.
Change the message of the exception and rethrow the exception.