Java线程中的异常处理

时间:2022-04-20 00:47:00

对于对线程,当主线程中有子线程运行出现异常时,主线程是不能捕获到该异常的,子线程会直接退出,不会记录任何日志。

解决:

1、子线程中try catch。

2、设置线程的未捕获异常处理器,UncaughtExceptionHandler。

1)Thread.setUncaughtExceptionHandler(ChildThreadExceptionHandler)设置当前线程的异常处理器;
2)Thread.setDefaultUncaughtExceptionHandler(ChildThreadExceptionHandler)为整个程序设置默认的异常处理器;
public static class ChildThreadExceptionHandler implements Thread.UncaughtExceptionHandler;

3、通过future的get方法返回异常。