In your case, I think that exactly what you are doing - displaying the error to the user using a user-friendly message, and then exiting the operation - is exactly what you should do.
I tend to group an exception into two categories: Exceptions from which you can recover and exceptions from which you cannot recover. Obviously, if you can recover from an exception without a user, even knowing that there was an error, then this is the best option. But in some cases, the application simply cannot move forward, and you need to somehow abandon the current operation.
Yours does not look like a web application, but if so, it is often useful to send an email to the developer when an unexpected error occurs, so that the developer can make the appropriate changes.
Also note that many frameworks have the ability to catch all uncaught exceptions without having to put all this into the Try Catch block. For example, ASP.NET 3.5 uses the Global.asax class, which catches all exceptions. Since our application is based on a web interface, this allows any errors that we did not expect to receive through this class, and we can send error messages to developers and display the corresponding user error page. Although, of course, if you are expecting a possible exception in a particular block of code, then you can just put Try-Catch around this block, but for everyone else it is useful.
source share