個人主頁:【😊個人主頁】
系列專欄:【??初識JAVA】
文章目錄
- 前言
- 異常方法(Throwable類)
- Throwable類的方法
- 捕獲異常
- 多重捕獲塊
前言
異常是程序中的一些錯誤,但并不是所有的錯誤都是異常,并且錯誤00有時候是可以避免的,學習一些異常處理方式往往可以使我們編程的時間大大減少。
注:本文為系列文章,前文可點擊觀看??【JAVA】我們該如何規避代碼中可能出現的錯誤?(一)
異常方法(Throwable類)
Java中的Throwable類是所有錯誤或異常的父類,它有兩個子類:Exception和Error。Exception表示程序可以處理的異常,而Error表示程序無法處理的錯誤。
Throwable類定義了許多方法來獲取異常信息,例如getMessage()方法可以獲取異常的描述信息,getStackTrace()方法可以獲取異常發生時調用堆棧中的信息,toString()方法可以將異常轉換為字符串。子類可以根據需要覆蓋這些方法來提供特定的異常信息。
通常情況下,在Java程序中拋出異常時,可以使用try-catch語句捕獲異常并進行處理。如果沒有處理異常,程序將會終止并輸出異常信息。當然也可以使用throws關鍵字將異常拋給上層調用者處理。
Throwable類的方法
public String getMessage()
返回關于發生的異常的詳細信息。這個消息在Throwable 類的構造函數中初始化了。
public Throwable getCause()
返回一個 Throwable 對象代表異常原因。
public String toString()
返回此 Throwable 的簡短描述。
public void printStackTrace()
將此 Throwable 及其回溯打印到標準錯誤流。。
public StackTraceElement [] getStackTrace()
返回一個包含堆棧層次的數組。下標為0的元素代表棧頂,最后一個元素代表方法調用堆棧的棧底。
public Throwable fillInStackTrace()
用當前的調用棧層次填充Throwable 對象棧層次,添加到棧層次任何先前信息中。
捕獲異常
try
{// 程序代碼
}catch(ExceptionName e1)
{//Catch 塊
}
在Java中,捕獲異常是通過try-catch語句塊實現的。try語句塊中包含可能拋出異常的代碼,catch語句塊中處理異常。如果try語句塊中的代碼拋出異常,則會嘗試尋找與異常類型匹配的catch語句塊來處理異常。在catch語句塊中,可以使用異常對象的信息來執行任何必要的操作,例如輸出錯誤消息、記錄日志或恢復程序執行。
try {// 可能拋出異常的代碼int x = 10/0; // 除以0將會拋出一個ArithmeticException異常
} catch (ArithmeticException e) {// 處理異常System.out.println("發生異常:" + e.getMessage());e.printStackTrace();
}
在上面的例子中,當執行10/0操作時,將會拋出一個ArithmeticException異常。catch語句塊中的代碼將處理該異常,輸出錯誤消息并打印異常堆棧跟蹤信息。
多重捕獲塊
一個 try 代碼塊后面跟隨多個 catch 代碼塊的情況就叫多重捕獲。
多重捕獲塊的語法如下所示:
try{// 程序代碼
}catch(異常類型1 異常的變量名1){// 程序代碼
}catch(異常類型2 異常的變量名2){// 程序代碼
}catch(異常類型3 異常的變量名3){// 程序代碼
}
上面的代碼段包含了 3 個 catch塊。
可以在 try 語句后面添加任意數量的 catch 塊。
如果保護代碼中發生異常,異常被拋給第一個 catch 塊。
如果拋出異常的數據類型與 ExceptionType1 匹配,它在這里就會被捕獲。
如果不匹配,它會被傳遞給第二個 catch 塊。
如此,直到異常被捕獲或者通過所有的 catch 塊。