如何捕获一个线程抛出的异常呢?
可以通过设置线程的UncaughtException来捕获线程抛出的异常。
示例代码如下:
package tt;
class MyThread extends Thread {
@Override
public void run() {
System.out.println("thread will throw exception");
throw new RuntimeException("My own exception from thread");
}
}
public class Outer {
public static void main(String[] args) {
Thread.UncaughtExceptionHandler handler = new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
System.out.println("Uncaught exception:" + e);
}
};
Thread myThread = new MyThread();
// 设置捕获异常的handler
myThread.setUncaughtExceptionHandler(handler);
myThread.start();
}
}