1. 程式人生 > >java中的異常類有哪幾類?分別怎麼使用?

java中的異常類有哪幾類?分別怎麼使用?

1.異常類有分為編譯時異常和執行時異常

1.1編譯時異常:寫程式碼的時候就會提醒你有異常

常見的編譯時異常有:
			IOException
			SQLException
			CloneNotSupportedException
			parseException

1.2執行時異常:java.lang.RuntimeException,執行的時候會在控制檯提示異常

常見的執行時異常有:
			NullPointerException: 空指標異常,一般出現於陣列,空物件的變數和方法
			ArrayIndexOutOfBoundsException: 陣列越界異常
			ArrayStoreException: 資料儲存異常
			NoClassDefFoundException: java執行時系統找不到所引用的類
			ArithmeticException: 算數異常,一般在被除數是0中
			ClassCastException: 型別轉換異常
			IllegalArgumentException: 非法引數異常
			IllegalThreadStateException: 非法執行緒狀態異常
			NumberFormatException: 資料格式異常
			OutOfMemoryException: 記憶體溢位異常
			PatternSyntaxException: 正則異常

1.3自定義異常:

自定義一個類,繼承某個異常類
如果繼承的是Exception那麼就定義了一個編譯時異常
如果繼承的是RuntimeException或者其子類,那麼就定義了一個執行時異常

2.怎麼使用:

2.1一種是在方法中聲名異常,誰呼叫就把異常拋給誰
	
	
2.2一種是使用try{}..catch{}塊處理異常
		如果多個異常處理的方式不同,可以用多個catch處理
		如果所有異常處理方式一樣,可以捕獲一個父類異常進行統一的處理
		如果多個異常分成了不同的組,那麼同一組異常之間可以使用|隔開(jdk1.7開始)
		jdk1.7還增加了增強tr(){}catch(){},通常用於自動關流

3.異常知識擴充套件:

3.1 Throwable類是所有異常的超類,有兩個子類,分為Error和Exception
		Error:錯誤是無法處理的,只能更改程式碼,就像一個人得癌症一樣
		Exception:異常是可以處理的,就像是感冒一樣,吃藥就能好
		
3.2 在方法重寫的時候
		子類丟擲的編譯時異常不能超過父類編譯時異常範圍
		子類不能丟擲比父類更多的編譯時異常(這裡是指丟擲異常的範圍不能更大,但個數可以更多)
		編譯時異常隨你拋

個人總結,如有錯誤或疑問請幫我指出,謝謝^!