回答
首先,搜索關鍵字。 'throw'關鍵字將用於檢測錯誤條件或不能處理某種異常的代碼,而'throws'則是聲明它們傳遞某些異常的方法。
Eclipse可能無法找到所有引發異常的方法,因爲運行時異常不需要在'throws'子句中聲明,並且可能會由庫調用引發,在這種情況下,您不會找到'throw 「要麼。
你能舉個例子嗎? 可以這樣說:String s =「1」 int i = Integer.parseInt(s); 我會如何發現它拋出?我只是想確保所使用的所有方法在拋出時捕獲異常,並且我不知道所有拋出的方法。 – dannyn382 2013-02-12 01:29:45
如果您忘記抓取已檢查異常(擴展爲Exception
),則代碼將無法編譯。如果你忘記抓取未檢查的異常(擴展爲RuntimeException
),那通常是更好的方法。 Read Up
如果您的程序在主方法(初始執行上下文)中捕獲到異常,您將被通知是否有某個異常被拋出但未處理。
public static void main(String[] args) {
try {
// .... anything you want to do
} catch(Exception e) {
e.printStackTrace(); // useful to visualize the stack trace and ping point others places to catch exceptions
} catch(Throwable t) {
// if you want to check for errors also, but generally there isn't much to do in this case
}
}
一個側面說明,因爲Java的實現檢查(異常)的異常概念和未選中的RuntimeException),是強制性的,以對付檢查,這將通知相應的程序應該嘗試異常/捕獲/終於。但未經檢查通常會通知情況表明有錯誤,應避免使用良好的做法和防禦性編程,因此您不必處理它。
檢查異常必須被捕獲,所以Eclipse會告訴你它們。另一方面,未經檢查的異常(又名RuntimeException)是「不應該發生」,它大部分時間是編程問題。因此,Java不需要捕捉它們,而且AFAIK Eclipse將不會顯示任何提示,告訴您潛在的問題(可能對可見性更好)。
您可以閱讀Unchecked Exceptions — The Controversy,這是一篇文章,其中Oracle提供了關於未檢查異常的狀態。
如果您想自己構建一些東西,請查看RuntimeException的Direct Known Subclasses
,它可以幫助您識別可以拋出而不被捕獲的異常。
- 1. 所有的OpenCV函數都會拋出異常嗎?
- 2. catch塊中的函數拋出異常
- 3. ServerSocket的構造函數拋出異常
- 4. 魔術異常拋出拋出異常
- 5. 從輔助函數中拋出異常
- 6. 聲明函數拋出異常與Qunit
- 7. UDF函數拋出空指針異常
- 8. 在postgresql函數中拋出異常
- 9. EJB3構造函數拋出異常?
- 10. Angular2,構造函數DI拋出異常
- 11. DllIImport函數拋出堆棧異常
- 12. 從構造函數中拋出異常
- 13. 拋出異常匿名遞歸函數
- 14. 帆布getImageData函數拋出異常鉻
- 15. 多個異常拋出函數的異常處理實踐
- 16. 從繼承函數拋出異常而不拋出
- 17. 構造函數拋出異常嵌套的例外是顯示java.lang.NullPointerException
- 18. 異常拋出異常
- 19. 拋出異常
- 20. 拋出異常
- 21. 拋出異常
- 22. 異常拋出
- 23. 爲什麼拋出異常的函數沒有通過function_name.should.throw(error)?
- 24. 列出可能由方法拋出的所有異常
- 25. 拋出一個新的異常拋出一箇舊的異常
- 26. 上次拋出的異常包含以前拋出的異常?
- 27. 簡單的CoreData示例拋出異常
- 28. 重新拋出異常偏上的水平上異步函數
- 29. 異常拋出帶有字符串函數在C#
- 30. Nokogiri在函數中拋出異常但不在函數外
尋找編譯器錯誤。每當你錯過了這些東西,編譯器都會幫助你。 – 2013-02-11 23:12:39
通常的「查找用法」工具可能會對您有所幫助。也就是說,這是在Java中檢查異常的原因。 – millimoose 2013-02-11 23:14:43