2
在退出應用程序之前,SWT應用程序清理資源的最佳方式是什麼?我看到兩個選項:SWT:在應用程序退出前清理
1)添加一個DisposeListener到主窗口(或更好的,到Display
)。如果未捕獲的異常發生,它會運行嗎?
2)使用shutdown hook。在Design of the Shutdown Hooks API中沒有提及哪些問題需要注意?
在退出應用程序之前,SWT應用程序清理資源的最佳方式是什麼?我看到兩個選項:SWT:在應用程序退出前清理
1)添加一個DisposeListener到主窗口(或更好的,到Display
)。如果未捕獲的異常發生,它會運行嗎?
2)使用shutdown hook。在Design of the Shutdown Hooks API中沒有提及哪些問題需要注意?
如果未捕獲到異常發生,你可能最終與java.lang.RuntimeException: Widget disposed too early!
例外:
這通常是由其他例外之一造成的,特別是在接近,常次「設置爲提前」錯誤在造成它們的例外之前列出。即
- 工作臺閉
- 一部分thows不能被捕獲的錯誤。
- 以下所有部件都未關閉,因此生成此錯誤
- 導致問題滲透到 堆棧頂部並打印出來的錯誤。
在你的情況,我不知道它會如何影響你的監聽器,所以關閉掛鉤可能是一個萬無一失,只要它仍可以訪問的資源來處理(這可能不盡然)。
很高興知道。在這種情況下,我可能會關閉掛鉤,因爲我可以訪問我擔心的資源。 – 2010-05-03 20:22:40