java子线程出现异常主线程获取异常并终止程序执行返回错误码
在Java中,可以使用Thread.UncaughtExceptionHandler来捕获子线程抛出的异常,并在主线程中进行处理。
首先,需要创建一个实现了Thread.UncaughtExceptionHandler接口的类,用于处理子线程抛出的异常:
class CustomUncaughtExceptionHandler implements Thread.UncaughtExceptionHandler {
@Override
public void uncaughtException(Thread t, Throwable e) {
System.out.println("子线程抛出异常:" + e.getMessage());
// 终止主线程执行
System.exit(1);
}
}
然后,在主线程中设置子线程的UncaughtExceptionHandler为自定义的异常处理类:
public class MainThread {
public static void main(String[] args) {
Thread thread = new Thread(() -> {
// 子线程出现异常
throw new RuntimeException("子线程异常");
});
thread.setUncaughtExceptionHandler(new CustomUncaughtExceptionHandler());
thread.start();
}
}
当子线程抛出异常时,CustomUncaughtExceptionHandler会被调用,主线程会获取到异常信息并终止程序执行
原文地址: https://www.cveoy.top/t/topic/ivWE 著作权归作者所有。请勿转载和采集!