使用线程组统一处理异常代码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()方法,定义了异常处理的业务逻辑后,只要归属于这个线程组的线程,在出现异常时,就都会走线程组统一定义的异常处理逻辑。