亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Java異常怎么自定義

發布時間:2023-03-14 16:13:08 來源:億速云 閱讀:81 作者:iii 欄目:開發技術

這篇文章主要介紹“Java異常怎么自定義”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Java異常怎么自定義”文章能幫助大家解決問題。

異常方法

//返回此可拋出對象的詳細信息消息字符串
public String getMessage() 

//將此可拋發對象及其回溯到標準錯誤流。此方法在錯誤輸出流上打印此 Throwable 對象的堆棧跟蹤
//最為詳細
public void printStackTrace()
//返回此可拋件的簡短說明
public String toString()

對于1/0這個異常

 try{
            int i = 1/0;
        } catch(Exception e){
            System.out.println("e = " + e);
            System.out.println("-----------------");
            System.out.println("e.getMessage() = " + e.getMessage());
            System.out.println("-----------------");
            System.out.println("e.getStackTrace() = " + Arrays.toString(e.getStackTrace()));
            System.out.println("-----------------");
            System.out.println("e.getLocalizedMessage() = " + e.getLocalizedMessage());
            System.out.println("-----------------");
            System.out.println("e.getCause() = " + e.getCause());
            System.out.println("-----------------");
            System.out.println("e.getClass() = " + e.getClass());
            System.out.println("-----------------");
            System.out.println("e.getSuppressed() = " + Arrays.toString(e.getSuppressed()));

        }
e = java.lang.ArithmeticException: / by zero
-----------------
e.getMessage() = / by zero
-----------------
e.getStackTrace() = [省略27行,com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)]
-----------------
//可能的原因
e.getCause() = null
-----------------
//一個數組,其中包含為傳遞此異常而禁止顯示的所有異常。
//就是用try捕獲卻不做事的
e.getSuppressed() = []

自定義異常

作用

讓控制臺的報錯信息更加的見名知意

定義

1.定義異常類,寫繼承關系。
名字要見名知義,繼承于異常類。
像運行時可以繼承RuntimeException
在開發過程中一般會有多種異常類,小的會繼承自定義的大的。

2.寫構造方法
需要書寫空參和帶參的構造。
可以調用父類的也可以自定義

增強try(try-with-resources)

作用

簡化釋放資源的步驟

條件

自動釋放的類需要實現autocloseable的接口
這樣在特定情況下會自動釋放,還有的就是stream流中提到過。

jdk7

try(創建對象資源1;創建對象資源2){

}catch(){
}

例如這樣的代碼可以改寫成

BufferedInputStream b = null;
try {
    b = new BufferedInputStream(new FileInputStream(""));
}catch (Exception e) {
    e.printStackTrace();
}finally {
    if (b!=null) {
        try {
            b.close();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}
try (BufferedInputStream b = new BufferedInputStream(new FileInputStream(""));){
    
}catch (Exception e) {
    e.printStackTrace();
}

jdk9

創建對象1
創建對象2
try(變量名1;變量名2){
}catch(){
}

上面的代碼可以改寫成,
不過需要注意的是創建對象也需要異常處理,我們這里選擇拋出

public void testTryWithResource() throws FileNotFoundException {
    BufferedInputStream b = new BufferedInputStream(new FileInputStream(""));
    try (b) {

    } catch (Exception e) {
        e.printStackTrace();
    }
}

關于“Java異常怎么自定義”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

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

AI

紫阳县| 石台县| 石首市| 宁陵县| 冕宁县| 嘉定区| 枞阳县| 邓州市| 扬州市| 布尔津县| 景泰县| 温宿县| 英德市| 张家界市| 阿瓦提县| 和平县| 虞城县| 武胜县| 中西区| 藁城市| 临沂市| 云浮市| 康马县| 漯河市| 简阳市| 昆明市| 织金县| 疏勒县| 泽普县| 奇台县| 旬阳县| 班戈县| 北海市| 乌拉特前旗| 柳河县| 托克逊县| 余庆县| 靖江市| 邯郸市| 三穗县| 山东省|