fzy-blog

java线程池、包括线程的异常处理

2019-05-24

对于线程池、包括线程的异常处理推荐一下方式:

1 直接 try/catch,个人 基本都是用这种方式

2 线程直接重写整个方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
     Thread t = new Thread();
t.setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {

public void uncaughtException(Thread t, Throwable e) {
LOGGER.error(t + " throws exception: " + e);
}
});
//如果是线程池的模式:
ExecutorService threadPool = Executors.newFixedThreadPool(1, r -> {
Thread t = new Thread(r);
t.setUncaughtExceptionHandler(
(t1, e) -> LOGGER.error(t1 + " throws exception: " + e));
return t;
});

3 也可以直接重写 protected void afterExecute(Runnable r, Throwable t) { }方法

使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏

扫描二维码,分享此文章