What is the best way for an SWT application to clean up resources before application exit? I see two options:
1) Add a DisposeListener to main window (or better, to the Display). Will it get run if an uncaught exception happens?
2) Use a shutdown hook. Any problems to be aware of there which aren’t mentioned in Design of the Shutdown Hooks API?
If an uncaught exception happen, you may end up with
java.lang.RuntimeException: Widget disposed too early!exception:In your case, I am not sure how it would affect your Listener, so a shutdown hook might be a fail-safe, provided it still can access resources to dispose (which may not be always the case).