java異常級別與捕獲的示例代碼
這個是jdk 1.8文檔中異常的種族描述

可以看出Java異常體系的根類是 Throwable, 當在java代碼中寫throw拋出異常時,后面跟的對象必然是Throwable或其子類的對象。
然后往下又分為 Exception(異常) 和 Error
其中Exception異常是指一些可以恢復的異常, 例如常見的NullPointerException空指針異常。
Error指的是一些致命的錯誤,無法通過程序代碼手段恢復的異常,例如OutOfMemoryError內(nèi)存溢出錯誤。
如果能善用異常機制那么代碼使用就會大大提高
本次模擬一個異常實例,驗證一下異常的捕獲
代碼如下
public class ExceptionTest {
public static void main(String[] args) {
try{
int i = subtraction();
System.out.println(i);
}catch (Exception e){
System.out.println("異常 Exception 被捕獲 異常信息為:"+e);
e.printStackTrace();
}
}
public static int subtraction(){
int result = 0;
try {
result = 10 / 0;
}catch (RuntimeException e){
System.out.println("運行異常 RuntimeException 被捕獲 異常信息"+e);
throw new RuntimeException("運行異常");
}
return result;
}
}
我在調(diào)用一個方法的時候,該方法會拋出一個runtimeException 異常
然后我調(diào)用此方法的程序可能會有其他處理操作,也做了個try…catch 處理,然后驗證 主方法的catch是否會執(zhí)行
結(jié)果證明會執(zhí)行

因為被調(diào)用的方法使用throw new RuntimeException("運行異常");
把異常給拋出來了,上面抓到異常以后就會執(zhí)行
我就是在工作中犯了此錯誤,
由于我在被調(diào)用方法catch的時候,給程序中的數(shù)據(jù)賦予,調(diào)用失敗的狀態(tài),結(jié)果異常又被調(diào)用方給捕獲,然后調(diào)用方的catch又將數(shù)據(jù)狀態(tài)改為未知異常,影響了結(jié)果的判斷
最終我將調(diào)用方代碼合并上去,然后多做了一個捕獲
public static void main(String[] args) {
try{
int a = 100 / 0;
}catch (RuntimeException e){
System.out.println("運行異常 RuntimeException 異常信息為:"+e);
throw new RuntimeException(e);
}catch (Exception e){
System.out.println("運行異常 Exception 異常信息為:"+e);
}
}

這次只運行了RuntimeException 的catch 盡管異常已經(jīng)拋出,但是Exception 的catch依舊是沒有執(zhí)行
到此這篇關于java異常級別與捕獲的示例代碼的文章就介紹到這了,更多相關java捕獲異常內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Windows環(huán)境下重啟jar服務bat代碼的解決方案
在Windows環(huán)境下部署java的jar包,若有多個服務同時啟動,很難找到相應服務重啟,每次都重啟全部服務很麻煩,應用場景大多用于部署測試,今天給大家分享Windows環(huán)境下重啟jar服務bat代碼,感興趣的朋友一起看看吧2023-08-08
springboot+maven多環(huán)境動態(tài)配置及編譯失敗的解決方案(步驟詳解)
這篇文章主要介紹了springboot+maven多環(huán)境動態(tài)配置及編譯失敗的解決方案,本文通過實例圖文相結(jié)合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-11-11
Java中關于優(yōu)先隊列PriorityQueue的使用及相關方法
這篇文章主要介紹了Java中關于優(yōu)先隊列PriorityQueue的使用及相關方法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
Spring?Boot配置文件的語法規(guī)則詳解(properties和yml)
這篇文章主要介紹了Spring?Boot配置文件的語法規(guī)則,主要介紹兩種配置文件的語法和格式,properties和yml,對于配置文件也有獨立的文件夾存放,主要用來存放一些需要經(jīng)過變動的數(shù)據(jù)(變量值),感興趣的朋友跟隨小編一起看看吧2024-07-07
如何優(yōu)雅的拋出Spring Boot注解的異常詳解
這篇文章主要給大家介紹了關于如何優(yōu)雅的拋出Spring Boot注解的異常的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-12-12
SpringBoot自動初始化數(shù)據(jù)庫的方法分享
我們在項目中應該經(jīng)常遇到過初始化數(shù)據(jù)的場景,特別是項目部署或者交付的時候,那么有什么方式可以在項目啟動的時候自動初始化數(shù)據(jù)庫呢,下面小編就來和大家分享幾個方法吧2023-08-08
Java中多線程與并發(fā)_volatile關鍵字的深入理解
這篇文章主要給大家介紹了關于Java中多線程與并發(fā)_volatile關鍵字的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12

