溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java異常級別與捕獲的實現(xiàn)方法

發(fā)布時間:2021-07-12 09:12:38 來源:億速云 閱讀:137 作者:chen 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“java異常級別與捕獲的實現(xiàn)方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“java異常級別與捕獲的實現(xiàn)方法”吧!

這個是jdk 1.8文檔中異常的種族描述

java異常級別與捕獲的實現(xiàn)方法

可以看出Java異常體系的根類是 Throwable, 當在java代碼中寫throw拋出異常時,后面跟的對象必然是Throwable或其子類的對象。
然后往下又分為 Exception(異常) 和 Error

其中Exception異常是指一些可以恢復(fù)的異常, 例如常見的NullPointerException空指針異常。

Error指的是一些致命的錯誤,無法通過程序代碼手段恢復(fù)的異常,例如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í)行

java異常級別與捕獲的實現(xiàn)方法

因為被調(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);
        }
    }

java異常級別與捕獲的實現(xiàn)方法

這次只運行了RuntimeException 的catch 盡管異常已經(jīng)拋出,但是Exception 的catch依舊是沒有執(zhí)行

到此,相信大家對“java異常級別與捕獲的實現(xiàn)方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI