例外
例外指程式運行中出現的不期而至的各種情況
發生在程式運行期間,影響了正常的程式執行流程
需要掌握的三種情況:
-
檢查例外(非運行時例外):編譯時可以看到,除了運行時例外,其他都是非運行時例外
-
不檢查例外(運行時例外):編譯時看不到,運行時才會出問題,這些例外其實就是我們的代碼邏輯寫錯了,我們一定要手動改正
例如:

-
錯誤(不是例外):編譯時檢查不到,一般不是人為導致,而是jvm的原因,其實就是人寫的代碼讓JVM出問題
Java把例外當做物件處理,并定義了一個基類java.lang.Throwable作為所有例外的超類
如圖:

處理例外
- 拋出例外
- 捕獲例外
五個關鍵字:try,catch,finally,throw,throws
//捕獲例外的案例
public class lianxi {
public static void main(String[] args) {
int a=0;
int b=1;
try {//看是否有例外
System.out.println(b/a);
} catch (Exception e) {//捕獲例外,引數為要捕獲的例外型別,最大為throwable
e.printStackTrace();//列印錯誤的堆疊資訊
} catch(Throwable t) {
//可以有多個捕獲,但要注意例外型別是由小到大
} finally {
//善后作業,無論是否有例外都會執行
}
}
}
捕獲例外快捷鍵:選中要捕獲例外的陳述句,Ctrl+Alt+T
//拋出例外的案例
public class lianxi {
public static void main(String[] args) {
try {
new lianxi().test(1,0);
} catch (Exception e) {
e.printStackTrace();
}
}
//假設方法中處理不了這個例外,則在方法上拋出例外,讓呼叫這個方法的來捕獲它
public void test(int a,int b)throws ArithmeticException{
if (b==0){
throw new ArithmeticException();//主動的拋出例外,一般在方法中使用
}
}
}
自定義例外
使用Java內置的例外類可以描述在編程時出現的大部分例外情況,初次之外,用戶還可以自定義例外,自己創建例外類,只需要繼承Exception類即可
總結
- 處理運行時例外時,采用邏輯去合理規避,同時輔助try-catch合理處理
- 在多重catch塊后面,可以加一個catch(Exception)來處理可能被遺漏的例外
- 對于不確定的代碼,也可以加上try-catch,處理潛在的例外
- 盡量去處理例外,切忌只是簡單的呼叫printStackTrace()去列印輸出
- 具體如何處理例外,要根據不同的業務需求和例外型別去決定
- 盡量添加finally陳述句塊去釋放占用的資源
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/257652.html
標籤:其他
上一篇:微服務初級
下一篇:Java基礎(第二期)
