- 实现步骤:
- 创建一个实现
Thread.UncaughtExceptionHandler
接口的类,在该类的uncaughtException
方法中定义处理未捕获异常的逻辑。
- 在
WorkerThread
类中通过setUncaughtExceptionHandler
方法设置这个自定义的未捕获异常处理器。
- 关键代码示例:
// 自定义未捕获异常处理器类
class MyUncaughtExceptionHandler implements Thread.UncaughtExceptionHandler {
@Override
public void uncaughtException(Thread t, Throwable e) {
System.err.println("线程 " + t.getName() + " 出现未捕获异常: " + e.getMessage());
e.printStackTrace();
}
}
// 自定义线程类
class WorkerThread extends Thread {
public WorkerThread(String name) {
super(name);
}
@Override
public void run() {
// 模拟可能抛出异常的代码
int result = 10 / 0;
}
}
public class Main {
public static void main(String[] args) {
WorkerThread worker = new WorkerThread("MyWorkerThread");
worker.setUncaughtExceptionHandler(new MyUncaughtExceptionHandler());
worker.start();
}
}