10、異常

一、 什麼是異常:
a) 異常是程序執行期間發生的各種意外或不正常的事件,它會中斷正在運行的程序。
雖說對某些異常JVM已做出處理,但應用程序中還會有很多JVM不能預知的情況,那麼這些異常就需用應用程序來編碼處理了。

二、 處理異常的語法:

public void method(){
try {
    // 代碼段(此處是會產生異常的代碼)
	//2
} catch (異常類型 ex) { 
      // 對異常進行處理的代碼段
} finally{
	//這裏的代碼始終都會被執行
}
// 其它代碼
}
a)	catch異常處理塊可以不是必須的,可以省略如: try{ ….. } finally{ …… }

三、 try、catch、finally、throw、throws
a) try代碼塊用以包含可能出現異常的代碼。
b) catch塊捕獲try代碼塊中產生的異常。
c) finally塊跟在catch或try之後用於確保無論是否發生異常都需執行的代碼。
d) throw用在方法或構造函數裏,用於手動(編碼)引發一個異常。如:

public void method(){
	throw new IllegalArgumentException(“參數不合法”);
}

e) thows用在方法或構造函數的定義上,說明方法或構造函數會產生哪些異常,多個異常用逗號分隔。如下指示方法method可產生算術異常和非法參數異常:

public  void  method(…)  throws ArithmeticException, IllegalArgumentException {
	//方法聲明已經可拋出兩個異常,那麼方法體內產生這兩個異常的代碼就可以不需要try-catch處理。
}

四、 java.lang.Exception是所有異常的父類
在這裏插入圖片描述
五、 Throwable 類具有兩個子類,它們是:
a) Exception異常、例外:合理的用戶程序應當捕獲處理的異常情況。
b) Error錯誤:用於指示合理的應用程序不應該試圖捕獲的嚴重問題。如JVM進程內部錯誤、系統級的錯誤,這些不是合理的應用程序應處理的。

六、 常見異常類:
在這裏插入圖片描述
七、 多重catch塊:
在這裏插入圖片描述
如果出現多重catch塊時,catch塊的先後順序有規定,異常的子類(越具體的異常)放在最前面的catch塊來處理,異常的父類放在最後面處理,Exception放在最後面處理。

八、 異常的分類:
a) 檢查異常(受控異常):這類異常一定要在代碼裏必須用try-[catch]-[finally]來處理。Exceptionn屬於檢查型異常。
b) 非檢查異常(即運行時異常也叫不受控異常,RuntimeException或RuntimeException的子類都屬於這類異常,如被0除、NullPointerExceptiont,數組下標越界等操作就會出現這類異常,這類異常JVM會自動處理不強制的要求在用戶代碼裏用try-catch處理)。常見的運行時異常有如下:

九、 throw 關鍵字:
a) 用在方法體內或者是構造函數內手動向外(調用方)拋出一個異常。
b) 語法:

throw  new 異常類();  或throw  ex; //ex爲異常對象

十、 throws關鍵字:
a) 在聲明方法或者構造函數頭時聲明可以拋出哪些類型的異常。
b) 語法:

public  void  method()  throws 異常類型1, 異常類型2…n {   }

十一、 自定義異常:
a) 異常是類(可把它看成一種特殊的類),所可用異常表示一種業務問題的類型,那麼自定義異常可以更加明確具體的知道應用出現了何種問題,使開發人員更容易的定位應用程序產生問題的具體原因和位置。
b) 語法:

public class MyException extends Exception{
	//構造函數
	//重寫父類的方法
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章