欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java線程組與未處理異常實(shí)例分析

 更新時間:2019年09月20日 09:20:44   作者:cakincqm  
這篇文章主要介紹了Java線程組與未處理異常,結(jié)合實(shí)例形式分析了java線程組處理異常的相關(guān)技巧與操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Java線程組與未處理異常。分享給大家供大家參考,具體如下:

一 點(diǎn)睛

從JDK1.5開始,Java加強(qiáng)了線程的異常處理,如果線程執(zhí)行過程中拋出了一個未處理的異常,JVM在結(jié)束該線程之前會自動查找是否有對應(yīng)的Thread.UncaughtExceptionHandler對象,如果找到該處理器對象,將會調(diào)用該對象的uncaughtException(Thread t, Throwable e)方法來處理該異常。

Thread.UncaughtExceptionHandler是Thread類的一個內(nèi)部公共靜態(tài)接口,該接口內(nèi)只有一個方法:void uncaughtException(Thread t, Throwable e),該方法中的t代表出現(xiàn)異常的線程,而e代表該線程拋出的異常。

線程組處理異常的默認(rèn)流程:

1 如果該線程組有父線程組,則調(diào)用父線程組的uncaughtException方法來處理該異常。

2 如果該線程實(shí)例所屬的線程類有默認(rèn)的異常處理器(由setDefaultUncaughtExceptionHandler方法設(shè)置的異常處理器),那就調(diào)用該異常處理器來處理該異常。

3 如果該異常對象是ThreadDeath的對象,將不做任何處理;否則將異常跟蹤棧的信息打印到System.err錯誤輸出流,并結(jié)束該線程。

二 實(shí)戰(zhàn)

1 代碼

// 定義自己的異常處理器
class MyExHandler implements Thread.UncaughtExceptionHandler
{
   // 實(shí)現(xiàn)uncaughtException方法,該方法將處理線程的未處理異常
   public void uncaughtException(Thread t, Throwable e)
   {
      System.out.println(t + " 線程出現(xiàn)了異常:" + e);
   }
}
public class ExHandler
{
   public static void main(String[] args)
   {
      // 設(shè)置主線程的異常處理器
      Thread.currentThread().setUncaughtExceptionHandler
        (new MyExHandler());
      int a = 5 / 0;   // ①
      System.out.println("程序正常結(jié)束!");
   }
}

2 運(yùn)行

Thread[main,5,main] 線程出現(xiàn)了異常:java.lang.ArithmeticException: / by zero

3 說明

程序指定的異常處理器對未捕獲的異常進(jìn)行了處理,但程序依然不會正常結(jié)束。這說明異常處理器與通過catch捕獲異常是不同的——當(dāng)使用catch捕獲異常時,異常不會向上傳遞給上一級調(diào)用者,但使用異常處理器對異常進(jìn)行處理之后,異常依然會傳遞給上一級調(diào)用者。

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java進(jìn)程與線程操作技巧總結(jié)》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • springboot整合skywalking的使用詳解

    springboot整合skywalking的使用詳解

    隨著分布式應(yīng)用大規(guī)模部署,應(yīng)用可觀測性從理論到落地已經(jīng)在眾多大型互聯(lián)網(wǎng)應(yīng)用中得到實(shí)踐,比如針對日志可視化ELK解決方案,分布式鏈路追蹤APM解決方案SkyWalking等,今天將詳細(xì)介紹下APM解決方案中一款重要工具SkyWalking的使用,需要的朋友可以參考下
    2024-01-01
  • Java反射機(jī)制如何解決數(shù)據(jù)傳值為空的問題

    Java反射機(jī)制如何解決數(shù)據(jù)傳值為空的問題

    這篇文章主要介紹了Java反射機(jī)制如何解決數(shù)據(jù)傳值為空的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 如何設(shè)置springboot啟動端口

    如何設(shè)置springboot啟動端口

    spring boot是個好東西,可以不用容器直接在main方法中啟動,而且無需配置文件,方便快速搭建環(huán)境。下面給大家介紹springboot啟動端口的設(shè)置方法和spring boot創(chuàng)建應(yīng)用端口沖突8080 問題,感興趣的朋友一起看看吧
    2017-08-08
  • 獲取Spring當(dāng)前配置的兩種方式

    獲取Spring當(dāng)前配置的兩種方式

    這篇文章主要給大家介紹了獲取Spring當(dāng)前配置的,兩種方式文中通過代碼示例給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • Java并發(fā)編程中構(gòu)建自定義同步工具

    Java并發(fā)編程中構(gòu)建自定義同步工具

    這篇文章主要介紹了Java并發(fā)編程中構(gòu)建自定義同步工具,本文講解了可阻塞狀態(tài)依賴操作的結(jié)構(gòu)、有界緩存實(shí)現(xiàn)基類示例、阻塞實(shí)現(xiàn)方式一:拋異常給調(diào)用者、阻塞實(shí)現(xiàn)方式二:通過輪詢和休眠、阻塞實(shí)現(xiàn)方式三:條件隊(duì)列等內(nèi)容,需要的朋友可以參考下
    2015-04-04
  • java方法實(shí)現(xiàn)簡易ATM功能

    java方法實(shí)現(xiàn)簡易ATM功能

    這篇文章主要為大家詳細(xì)介紹了用java方法實(shí)現(xiàn)簡易ATM功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • Springboot靜態(tài)資源的訪問方法介紹

    Springboot靜態(tài)資源的訪問方法介紹

    最近在做SpringBoot項(xiàng)目的時候遇到了“白頁”問題,通過查資料對SpringBoot訪問靜態(tài)資源做了總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • druid配置數(shù)據(jù)庫連接使用密文密碼方式

    druid配置數(shù)據(jù)庫連接使用密文密碼方式

    這篇文章主要介紹了druid配置數(shù)據(jù)庫連接使用密文密碼方式,具有很好的參考價值,希望對大家有所幫助,
    2023-12-12
  • idea2020安裝MybatisCodeHelper插件的圖文教程

    idea2020安裝MybatisCodeHelper插件的圖文教程

    這篇文章主要介紹了idea2020安裝MybatisCodeHelper插件的方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • eclipse 聯(lián)想功能設(shè)置技巧

    eclipse 聯(lián)想功能設(shè)置技巧

    本文主要介紹了eclipse 聯(lián)想功能設(shè)置技巧的相關(guān)內(nèi)容,還是比較不錯的,需要的朋友可以參考。
    2017-10-10

最新評論