如何在 Java 中使用 UncaughtExceptionHandler 来处理异常?


UncaughtExceptionHandler 是一个位于Thread 类的内部接口。当主线程由于未捕获的异常而即将终止时,java 虚拟机将调用该线程的UncaughtExceptionHandler ,为其提供机会执行一些错误处理操作,例如将**异常记录到文件**或**将日志上传到服务器**,然后再将其终止。我们可以设置一个默认异常处理程序,它将为所有未处理的异常调用。它在Java 5 版本中被引入。

可以使用**java.lang.Thread**类的以下静态方法设置此处理程序。

public static void setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler ueh)

我们必须提供接口Thread.UncaughtExceptionHandler的实现,该接口只有一个方法。

语法

@FunctionalInterface
public interface UncaughtExceptionHandler {
   void uncaughtException(Thread t, Throwable e);
}

示例

在线演示

public class UncaughtExceptionHandlerTest {
   public static void main(String[] args) throws Exception {
      Thread.setDefaultUncaughtExceptionHandler(new MyHandler());
      throw new Exception("Test Exception");
   }
   private static final class MyHandler implements Thread.UncaughtExceptionHandler {
      @Override
      public void uncaughtException(Thread t, Throwable e) {
         System.out.println("The Exception Caught: " + e);
      }
   }
}

输出

The Exception Caught: java.lang.Exception: Test Exception

更新于: 30-Jul-2019

887 次观看

启动你的 职业生涯

通过完成课程获得认证

入门
广告