使用线程组统一处理异常

使用线程组统一处理异常代码demo:

public static void main(String[] args) {
    ThreadGroup threadGroup = new ThreadGroup("线程组一") {
        @Override
        public void uncaughtException(Thread t, Throwable e) {
            System.out.println(t.getName() + e.getMessage());
        }
    };
    Thread thread = new Thread(threadGroup, new Runnable() {
        @Override
        public void run() {
            throw new RuntimeException("运行时异常");
        }
    }, "线程一");
    thread.start();
    Thread thread2 = new Thread(threadGroup, new Runnable() {
        @Override
        public void run() {
            throw new RuntimeException("运行时异常");
        }
    }, "线程二");
    thread2.start();
}

运行结果:
在这里插入图片描述

总结

可以发现,线程组通过重写uncaughtException()方法,定义了异常处理的业务逻辑后,只要归属于这个线程组的线程,在出现异常时,就都会走线程组统一定义的异常处理逻辑。

猜你喜欢

转载自blog.csdn.net/weixin_38106322/article/details/107558270