在Java中,捕获线程异常可以通过多种方式实现。以下是几种常见的方法:
1.使用 Thread.UncaughtExceptionHandler
每个线程都可以设置一个未捕获异常处理器,当线程中抛出未捕获的异常时,这个处理器就会被调
用。
这种方式适用于任何线程,无论是否使用了ExecutorService。
import java.lang.Thread.UncaughtExceptionHandler;
public class UncaughtExceptionHandlerDemo {
public static void main(String[] args) {
Thread thread = new Thread(() -> {
throw new RuntimeException("Exception from thread.");
});
// 设置线程的未捕获异常处理器
thread.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
System.out.println("Caught exception: " + e.getMessage());