java多線程中的異常處理機(jī)制簡(jiǎn)析
但如果線程確實(shí)沒(méi)有自己try catch某個(gè)unchecked exception,而我們又想在線程代碼邊界之外(run方法之外)來(lái)捕獲和處理這個(gè)異常的話,java為我們提供了一種線程內(nèi)發(fā)生異常時(shí)能夠在線程代碼邊界之外處理異常的回調(diào)機(jī)制,即Thread對(duì)象提供的setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)方法。
通過(guò)該方法給某個(gè)thread設(shè)置一個(gè)UncaughtExceptionHandler,可以確保在該線程出現(xiàn)異常時(shí)能通過(guò)回調(diào)UncaughtExceptionHandler接口的public void uncaughtException(Thread t, Throwable e) 方法來(lái)處理異常,這樣的好處或者說(shuō)目的是可以在線程代碼邊界之外(Thread的run()方法之外),有一個(gè)地方能處理未捕獲異常。但是要特別明確的是:雖然是在回調(diào)方法中處理異常,但這個(gè)回調(diào)方法在執(zhí)行時(shí)依然還在拋出異常的這個(gè)線程中!
比之上述方法,還有一種編程上的處理方式可以借鑒,即,有時(shí)候主線程的調(diào)用方可能只是想知道子線程執(zhí)行過(guò)程中發(fā)生過(guò)哪些異常,而不一定會(huì)處理或是立即處理,那么發(fā)起子線程的方法可以把子線程拋出的異常實(shí)例收集起來(lái)作為一個(gè)Exception的List返回給調(diào)用方,由調(diào)用方來(lái)根據(jù)異常情況決定如何應(yīng)對(duì)。不過(guò)要特別注意的是,此時(shí)子線程早以終結(jié)。
相關(guān)文章
Java異常的幾個(gè)謎題_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
本文給大家收藏整理java異常的幾個(gè)謎題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-06-06java使用socket實(shí)現(xiàn)一個(gè)多線程web服務(wù)器的方法
今天小編就為大家分享一篇java使用socket實(shí)現(xiàn)一個(gè)多線程web服務(wù)器的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10Mybatis調(diào)用Oracle存儲(chǔ)過(guò)程的方法圖文詳解
這篇文章主要介紹了Mybatis調(diào)用Oracle存儲(chǔ)過(guò)程的方法介紹,需要的朋友可以參考下2017-09-09Java 回調(diào)機(jī)制(CallBack) 詳解及實(shí)例代碼
這篇文章主要介紹了 Java 回調(diào)機(jī)制(CallBack) 詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2017-02-02Java實(shí)現(xiàn)簡(jiǎn)易圖書借閱系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)易圖書借閱系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03springmvc直接不經(jīng)過(guò)controller訪問(wèn)WEB-INF中的頁(yè)面問(wèn)題
這篇文章主要介紹了springmvc直接不經(jīng)過(guò)controller訪問(wèn)WEB-INF中的頁(yè)面問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02Spring Boot如何優(yōu)雅的使用多線程實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于Spring Boot如何優(yōu)雅的使用多線程的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05SpringBoot Actuator埋點(diǎn)和監(jiān)控及簡(jiǎn)單使用
最近做的項(xiàng)目涉及到埋點(diǎn)監(jiān)控、報(bào)表、日志分析的相關(guān)知識(shí),于是搗鼓的一番,下面把涉及的知識(shí)點(diǎn)及SpringBoot Actuator埋點(diǎn)和監(jiān)控的簡(jiǎn)單用法,給大家分享下,感興趣的朋友一起看看吧2021-11-11