日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Thread.setDefaultUncaughtExceptionHandler作用

發布時間:2025/3/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Thread.setDefaultUncaughtExceptionHandler作用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

剛剛看到ResourceManager源碼第一行,就遇到了比較陌生的用法,特意研究一下,如何使用?

看源碼的目標不就是學習,更好的來完善自己的代碼,而不是面試時候的談資。

?

下面是一個自己寫的demo,setDefaultUncaughtExceptionHandler作用相當于一個全局的catch。一般情況下用于記錄當程序發生你未捕獲的異常的時候,調用一個你默認的handler來進行某些操作,比如記錄客戶端版本,異常信息,等客戶信息,方便收集異常原因。

?

通常來講,會針對,某段代碼做try … catch 沒有catch到的代碼,發生異常的時候,就會由setDefaultUncaughtExceptionHandler來處理。

package com.yanbit.source.study;

import java.lang.Thread.UncaughtExceptionHandler;

/**
* @author yanbit
*
*/
public class GlobExceptionHandler {
? public static void main(String[] args) {
??? Thread t = new Thread(new AdminThread());
??? t.setDefaultUncaughtExceptionHandler(new ExceptionHandler()); //對當前線程設置默認catch
??? t.start();
? }
}

class AdminThread implements Runnable {
? @Override
? public void run() {
??? try {
????? Thread.sleep(2000);
????? System.out.println("start ... Exception");
????? Thread.sleep(2000);
??? } catch (InterruptedException e) {
????? e.printStackTrace();
??? }
??? throw new NullPointerException(); //直接exception
? }
}

class ExceptionHandler implements UncaughtExceptionHandler {

? @Override
? public void uncaughtException(Thread t, Throwable e) { //調用此方法來進行,對異常處理,需要實現UncaughtExceptionHandler 接口
??? System.out.println("Thread:" + t + " Exception message:" + e);
? }
}

?

太贊了,又從開源項目學到一些東西。over

轉載于:https://www.cnblogs.com/yanbit/p/4738774.html

總結

以上是生活随笔為你收集整理的Thread.setDefaultUncaughtExceptionHandler作用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。