2011-03-10 123 views
0

我已經閱讀了一些關於使用Thread.setDefaultUncaughtExceptionHandler重寫默認異常的帖子,但是當我嘗試這樣做時,我在Eclipse中遇到了問題。DefaultExceptionHandler和Eclipse警告

如果我有一些通常會拋出異常並且被try/catch塊包圍的代碼,我想刪除它並讓我自己的處理程序處理它,Eclipse不會讓我刪除try/catch因爲它抱怨說它無法編譯並建議將代碼封裝在try/catch塊中。 我不能使用throws將問題傳播出該方法,因爲無論它調用哪個方法,它都有相同的問題。

是否需要在Eclipse中關閉一些編譯時錯誤檢查,以便它忽略這些問題或者是否有另一種解決方法?

回答

0

檢查異常必須被捕獲或聲明它們將被拋出您的方法簽名。這就是Eclipse所抱怨的。

如果您將異常一直拋到鏈的頂部,則將由Thread.setDefaultUncaughtExceptionHandler.處理。未經檢查的異常不具備此要求(例外情況可延伸至RuntimeException)。

+0

你會在哪裏調用Thread.setDefaultUncaughtExceptionHandler? – Azalar 2011-03-10 16:26:55

+0

你可以在onCreate()中做到這一點。 – 2011-03-10 16:29:45

+0

如果您在Eclipse希望您處理它的某個時刻向鏈中拋出異常,那麼它對DefaultUncaughtExceptionHandler沒有任何意見,所以它會抱怨。 無論你調用引發異常的方法需要處理它,並且如果這是一個被覆蓋的方法,並且通常不會拋出該類型的異常,Eclipse將不會接受它的有效性。 – Azalar 2011-03-10 16:53:25