在我們寫java程序時難免會出現錯誤,java中的異常機制爲了提高我們程序的健壯性和容錯性二存在
一、異常體系
Throwable類是java語言中所有錯誤和異常的超類。
1、Throwable類子類:Error(錯誤類)和Exception(異常類)
①Error類:程序出現了嚴重的問題,這種問題程序解決不了,不如內存益處或者斷電,錯誤一般都是以Error爲結尾
②Exception類:異常類分爲編譯期異常和運行時異常,異常都是以Exception爲結尾
2、運行時異常編譯的時候沒有異常,但是程序執行過程中產出的異常就是運行時異常。這種異常我們需要通過程序來容錯提高代碼的健壯性。
3、編譯期異常編譯期的異常我們必須處理,如果不處理就會編譯失敗。
4、運行時異常和編譯時處理方法有兩種:
①自行處理:
我們通過
try{
有可能發生運行時異常的代碼
}catch(異常對象){
//處理或者向外拋出
}finally{
釋放資源
}
②向上拋出:
如果被調用的方法發生了運行時的異常,那麼如果被調用的方法不去處理(不try..catch)jvm默認就會把這個運行時的異常拋到上一層,上一層函數可以對這個異常來處理,如果上一層函數依然沒辦法處理那麼就不處理,就會接着向上拋出,總有一層方法會處理它。
finally內部的代碼不管是否發生異常一定會被執行,finally主要是來做一些資源的釋放。
6、自定義異常:
在實際的項目中,我們需要跟業務相關的異常,javaAPI中是沒有的,所以我們要自定義。
如:在電商系統中,在提交訂單的時候如果出現了庫存不足,我們要拋出自定義的異常。
自定義的異常只要繼承javaAPI中的異常類即可,通常情況下我們會自定義運行時異常。
所以我們自定義異常就去繼承RuntimeException。
7、異常中常用的方法:
public StringgetMessage() 返回此throwable的詳細消息字符串。
public StringtoString() 返回此throwable的簡短描述。結果是以下字符串的串聯
public void printStackTrace()打印出異常的詳細信息。