2011-05-11 25 views
3

在eclipse中,當我使用引發異常的方法時,它通常會抱怨,如果它沒有被try/catch包圍或者異常不再被拋出。但對於一些例外(例如Integer.parseInt(字符串))eclipse不會抱怨。在Eclipse中通知未處理的異常的配置是什麼?

如何設置eclipse來投訴所有未處理的異常?

謝謝!

回答

3

簡單的答案是,你不能。

較長的答案是:

  • 經過與unchecked異常是Java語言的基本組成部分。

  • Eclipse編譯器的角色並不是爲有效且完全可接受的Java提供編譯錯誤或警告。

  • 你不會希望它要麼,考慮到多數報表可能(理論上)拋出或傳播例外,如NullPointerExceptionArrayIndexOutOfBoundsExceptionOutOfMemoryError,等等。

是的,有一個或兩個「錯誤」 ......如NumberFormatException作爲一個未經檢查的異常......但一個更好的方式來處理那些會(例如)與一些自定義運行PMD規則來挑選「應該」被視爲檢查的異常。

1

AFAIK,Eclipse使用與Java相同的checked異常和未經檢查的異常列表。這是Java如何工作的定義的一部分。如果Eclipse允許你重寫這個,我會感到驚訝。

在Java中,除了RuntimeExceptionError的子類之外,所有Throwable都被檢查。

2

此行爲由java語言定義定義。 有兩種類型的異常: 必須捕獲異常,RuntimeExceptions可能發生,但不需要try/catch塊。

1

只有在未處理檢查的異常時,編譯器纔會發出抱怨。這裏的Integer.parseInt(字符串)預計會拋出一個未經檢查或運行時異常的數字形式的錯誤。因爲它沒有問題。

2

RuntimeException s不需要聲明,可以由堆棧中的任何調用者處理。在編譯時評估調用者的位置是不可能的。