個(gè)人主頁:【??個(gè)人主頁】
系列專欄:【??初識JAVA】
前言
異常是程序中的一些錯(cuò)誤,但并不是所有的錯(cuò)誤都是異常,并且錯(cuò)誤00有時(shí)候是可以避免的,學(xué)習(xí)一些異常處理方式往往可以使我們編程的時(shí)間大大減少。
注:本文為系列文章,前文可點(diǎn)擊觀看??【JAVA】我們該如何規(guī)避代碼中可能出現(xiàn)的錯(cuò)誤?(一)
異常方法(Throwable類)
Java中的Throwable類是所有錯(cuò)誤或異常的父類,它有兩個(gè)子類:Exception和Error。Exception表示程序可以處理的異常,而Error表示程序無法處理的錯(cuò)誤。
Throwable類定義了許多方法來獲取異常信息,例如getMessage()方法可以獲取異常的描述信息,getStackTrace()方法可以獲取異常發(fā)生時(shí)調(diào)用堆棧中的信息,toString()方法可以將異常轉(zhuǎn)換為字符串。子類可以根據(jù)需要覆蓋這些方法來提供特定的異常信息。
通常情況下,在Java程序中拋出異常時(shí),可以使用try-catch語句捕獲異常并進(jìn)行處理。如果沒有處理異常,程序?qū)K止并輸出異常信息。當(dāng)然也可以使用throws關(guān)鍵字將異常拋給上層調(diào)用者處理。
Throwable類的方法
public String getMessage()
返回關(guān)于發(fā)生的異常的詳細(xì)信息。這個(gè)消息在Throwable 類的構(gòu)造函數(shù)中初始化了。
public Throwable getCause()
返回一個(gè) Throwable 對象代表異常原因。
public String toString()
返回此 Throwable 的簡短描述。
public void printStackTrace()
將此 Throwable 及其回溯打印到標(biāo)準(zhǔn)錯(cuò)誤流。。
public StackTraceElement [] getStackTrace()
返回一個(gè)包含堆棧層次的數(shù)組。下標(biāo)為0的元素代表?xiàng)m?,最后一個(gè)元素代表方法調(diào)用堆棧的棧底。
public Throwable fillInStackTrace()
用當(dāng)前的調(diào)用棧層次填充Throwable 對象棧層次,添加到棧層次任何先前信息中。
捕獲異常
try
{
// 程序代碼
}catch(ExceptionName e1)
{
//Catch 塊
}
在Java中,捕獲異常是通過try-catch語句塊實(shí)現(xiàn)的。try語句塊中包含可能拋出異常的代碼,catch語句塊中處理異常。如果try語句塊中的代碼拋出異常,則會嘗試尋找與異常類型匹配的catch語句塊來處理異常。在catch語句塊中,可以使用異常對象的信息來執(zhí)行任何必要的操作,例如輸出錯(cuò)誤消息、記錄日志或恢復(fù)程序執(zhí)行。
try {
// 可能拋出異常的代碼
int x = 10/0; // 除以0將會拋出一個(gè)ArithmeticException異常
} catch (ArithmeticException e) {
// 處理異常
System.out.println("發(fā)生異常:" + e.getMessage());
e.printStackTrace();
}
在上面的例子中,當(dāng)執(zhí)行10/0操作時(shí),將會拋出一個(gè)ArithmeticException異常。catch語句塊中的代碼將處理該異常,輸出錯(cuò)誤消息并打印異常堆棧跟蹤信息。
多重捕獲塊
一個(gè) try 代碼塊后面跟隨多個(gè) catch 代碼塊的情況就叫多重捕獲。
多重捕獲塊的語法如下所示:
try{
// 程序代碼
}catch(異常類型1 異常的變量名1){
// 程序代碼
}catch(異常類型2 異常的變量名2){
// 程序代碼
}catch(異常類型3 異常的變量名3){
// 程序代碼
}
上面的代碼段包含了 3 個(gè) catch塊。
可以在 try 語句后面添加任意數(shù)量的 catch 塊。
如果保護(hù)代碼中發(fā)生異常,異常被拋給第一個(gè) catch 塊。
如果拋出異常的數(shù)據(jù)類型與 ExceptionType1 匹配,它在這里就會被捕獲。
如果不匹配,它會被傳遞給第二個(gè) catch 塊。
如此,直到異常被捕獲或者通過所有的 catch 塊。文章來源:http://www.zghlxwxcb.cn/news/detail-713607.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-713607.html
到了這里,關(guān)于【JAVA】我們該如何規(guī)避代碼中可能出現(xiàn)的錯(cuò)誤?(二)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!