Java基礎10-異常處理
阿新 • • 發佈:2018-12-19
1.原理
Java會在發生異常的那句程式碼處,生成一個異常物件(封裝了關於該異常的一些描述資訊),
然後以堆疊式丟擲,層層網上拋(上,誰呼叫你,誰就是你的上級),
直到有一個處理的程式碼或者最終到達JVM,如果都沒有處理,最終程式會終止。
2.處理的方式:
處理的方式 1."抓"-“拋” 把可能發生異常的程式碼,用try{}塊圍繞 如果在try部分發生異常,生成的異常物件,會丟擲,由catch來捕獲,從上往下,挨個匹配異常的型別,如果匹配上了,就進入某個catch塊執行相應的處理語句,如果所有的catch都沒有匹配上,等價於沒有處理的程式碼,往上拋 2.catch:可以多個,如果所有的異常是“互斥,平等”的,順序無所謂,如果多個異常型別是“包含,父子類”的關係,要“子上父下” finally塊是表示無論是否發生異常,而且不管是否有return語句都會執行的程式碼 3.throws 在方法的宣告處,throws後面接異常的型別,可以多個,而且順序無所謂 表示該方法可能丟擲這些異常的物件 4.throw 手動丟擲一個異常的物件 實際應用中,一般是違反了實際的業務邏輯時,可以通過丟擲一個異常物件
try{
可能發生異常的程式碼
}catch(異常型別 名){
}catch(異常型別 名){
}catch(異常型別 名){
}。。。
finally{
}
idea快捷鍵:ctrl+alt+t
3.異常的分類
超級父類:java.lang.Throwable java.lang.Error:錯誤,一般是表示嚴重錯誤,例如,記憶體異常,系統錯誤等,這樣的錯誤一般在程式碼中不進行處理 java.lang.Exception:異常 受檢異常:編譯時異常,表示在編譯階段就強制你作出處理,如果不進行處理,編譯不通過 非受檢異常:執行時異常java.lang.RuntimeException,表示在編譯階段,正常通過,有可能在執行時,產生異常物件,最好也做異常處理 常見的異常型別: NullPointerException:空指標異常 ArrayIndexOutOfBoundsException:陣列下標越界 ClassCastException:型別轉換異常 NumberFormatException:數字轉換異常 ArithmeticException:算術異常 IOException EOFException FileNotFoundException ClassNotFoundException