Exceptions should go up until they reach the layer where you need to take care of them (i.e. catch them and act accordingly).
In your example, it seems you need to load a file; if the file is not found or is corrupt, you want to close the application. In this case, it seems that you should catch the exception at the outermost layer (loader -> controller -> ... -> entry point -- catch here), present an error message to the user, and quit. Catching the exception anywhere else will only make your code more convoluted and difficult.
This makes sense if the file is not something that depends on the user and the user cannot do anything to fix the file if it is wrong or missing.
On the other hand, if the file is one that is chosen by the user (or can be), you should show an error message to the user, and then give the opportunity of finding the right file instead of quitting.