2013-04-16 118 views
0

最近我在我的一個程序中使用了一個Task。基本上可以說,包含在Task中的代碼在另一個線程中執行。該線程拋出異常,但我從未注意到,因爲Eclipse沒有顯示它(至少不在控制檯中)。從所有線程捕獲異常?

那麼,如何確保我知道所有線程的異常?

感謝您的任何提示!

更新:我想知道是否有一種方法,不涉及代碼修改/適應 - 因爲人們可以很容易地忘記。在Eclipse中的任何設置?

+1

您可以在一個線程設置的UncaughtExceptionHandler捕獲異常。 (我不知道Java中的任務類) –

+0

謝謝你們,反映你的答案我更新了我的問題。 –

+0

那麼,我期望Eclipse調試器將通過適當的設置向您顯示所有線程中發生的異常。 –

回答

0

如果說

我想知道,如果有不涉及代碼的修改/ adaptions的方式 - 因爲人們很容易忘記這一點。

你的意思是,你可以忘記爲每個線程編碼/設置它,那麼情況並非如此。

Thread.setDefaultUncaughtExceptionHandler 

是一個靜態方法,讓你整個Java應用程序設置它只有一次。任何線程上的任何未捕獲的異常都將以該方法結束。

http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.UncaughtExceptionHandler.html