1. 程式人生 > >Java基礎10-異常處理

Java基礎10-異常處理

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