亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java異常--常見方法--自定義異常--增強try(try-with-resources)詳解

 更新時間:2023年03月14日 10:38:07   作者:一只小余  
這篇文章主要介紹了Java異常--常見方法--自定義異常--增強try(try-with-resources)的相關知識,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

異常方法

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

//將此可拋發(fā)對象及其回溯到標準錯誤流。此方法在錯誤輸出流上打印此 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
-----------------
//一個數(shù)組,其中包含為傳遞此異常而禁止顯示的所有異常。
//就是用try捕獲卻不做事的
e.getSuppressed() = []

自定義異常

作用

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

定義

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

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

增強try(try-with-resources)

作用

簡化釋放資源的步驟

條件

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

jdk7

try(創(chuàng)建對象資源1;創(chuàng)建對象資源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

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

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

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

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

到此這篇關于java-異常--常見方法--自定義異常--增強try(try-with-resources)的文章就介紹到這了,更多相關java自定義異常內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • RabbitMq消息防丟失功能實現(xiàn)方式講解

    RabbitMq消息防丟失功能實現(xiàn)方式講解

    這篇文章主要介紹了RabbitMq消息防丟失功能實現(xiàn),RabbitMQ中,消息丟失可以簡單的分為兩種:客戶端丟失和服務端丟失。針對這兩種消息丟失,RabbitMQ都給出了相應的解決方案
    2023-01-01
  • 簡單實現(xiàn)java數(shù)獨游戲

    簡單實現(xiàn)java數(shù)獨游戲

    這篇文章主要教大家如何簡單實現(xiàn)java數(shù)獨游戲,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Java線程池實現(xiàn)帶返回值的方式方法

    Java線程池實現(xiàn)帶返回值的方式方法

    在Java中,線程池是一種重要的多線程處理方式,可以有效管理和重用線程,提高程序的性能和效率,有時候我們需要在多線程處理中獲取線程的返回值,本文將介紹如何使用線程池實現(xiàn)帶返回值的方式方法,需要的朋友可以參考下
    2024-09-09
  • mybatis設置sql執(zhí)行時間超時時間的方法

    mybatis設置sql執(zhí)行時間超時時間的方法

    本文主要介紹了mybatis設置sql執(zhí)行時間超時時間的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • IDEA如何切換JDK版本

    IDEA如何切換JDK版本

    本文主要介紹了IDEA如何切換JDK版本,JDK版本之間的關系是一個向后兼容的關系,所以我們需要切換JDK的版本號,具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • SpringBoot整合Apollo配置中心快速使用詳解

    SpringBoot整合Apollo配置中心快速使用詳解

    本文主要介紹了SpringBoot整合Apollo配置中心快速使用詳解,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Java if(boolean)和if(boolean=true)區(qū)別解析

    Java if(boolean)和if(boolean=true)區(qū)別解析

    這篇文章主要介紹了Java if(boolean)和if(boolean=true)區(qū)別解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • springboot整合nacos,如何讀取nacos配置文件

    springboot整合nacos,如何讀取nacos配置文件

    這篇文章主要介紹了springboot整合nacos,如何讀取nacos配置文件問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • java &與&&的區(qū)別及實例

    java &與&&的區(qū)別及實例

    這篇文章主要介紹了java &與&&的區(qū)別的相關資料,并附簡單實例,幫助大家學習理解這部分知識,需要的朋友可以參考下
    2016-10-10
  • SpringCloudAlibaba Nacos開啟鑒權解決跳過登錄頁面問題

    SpringCloudAlibaba Nacos開啟鑒權解決跳過登錄頁面問題

    對于Nacos,如果需要開啟權限控制,可以在 Nacos 控制臺上進行配置,本文主要介紹了SpringCloudAlibaba Nacos開啟鑒權解決跳過登錄頁面問題,感興趣的可以了解一下
    2023-10-10

最新評論