在Java中,異常定義了程序運行中可能遇到的輕微錯誤或異常情況。當發生異常時,程序員可以通過自己編寫有針對性的代碼來對它進行處理,以讓程序繼續運行下去。為了讓寫出來的代碼比較強壯(robust),Java語言要求除Error和RuntimeException之外的所有Exception都能夠得到處理。
Java對異常(Exception)的處理方法分為兩類,一類將異常的處理遞交給當前方法的調用者去處理,稱為throws a Exception,另一類則在方法中使用try/catch/finally語句自己處理異常。
1.Java 語言采用了C++風格的異常處理。
當程序中出錯時,發生錯誤的那個方法中產生的異常沒有相應的try/catch 段來處理時,它就會被擲給(throw)產生該異常的方法,如果該方法也未能處理它,異常就會被擲給該方法的調用者。這個過程一直進行, 直到異常被處理為止。當返回到main()方法時異常還未被處理,或者main()方法中也未對它進行處理,則該異常就會讓程序異常終止。
2.使用try/catch/finally段來處理exception
1. 將可能會產生異常的程序包含在try段中。
2.
3. try {
4. // code that might throw a particular exception
5. }
6. 使用一個或多個catch段來處理try段中可能產生的異常。
7. try {
8. //code that might throw a particular exception
9. }
10.
11. catch (ExceptionType1 e1){ …
12. // 當try段中產生類型為ExceptionType1的異常時執行該段
13. // e1代表該異常類(ExceptionType1)對應的實例(對象),由系統自動生成
14.
15. }catch (ExceptionType2 e2) { …
16. // 當try段中產生類型為ExceptionType2的異常時執行該段
17. }
當發生的異常類型與某一catch段中的異常類型一致或相匹配時,該catch段中的代碼就會被執行。在一個try段後可以有多個catch段,每個catch段可以對應一種異常的處理。
Java的異常處理機制帶來的好處是將異常處理與正常的程序流分開,即將出錯處理代碼與正常的代碼相隔離。這樣產生的代碼可讀性好,易於管理。