一 运行时异常 API
// 为某个特定线程指定 UncaughtExceptionHandler
public void setUncaughtExceptionHandler(UncaughtExceptionHandler eh)
// 设置全局UncaughtExceptionHandler
public static void setDefaultUncaughtExceptionHandler(UncaughtExceptionHandler eh)
// 获取特定线程的 UncaughtExceptionHandler
public UncaughtExceptionHandler getUncaughtExceptionHandler()
// 获取全局的 UncaughtExceptionHandler
public static UncaughtExceptionHandler getDefaultUncaughtExceptionHandler()
二 点睛
线程在执行单元中不允许抛出 checked 异常,线程运行在自己的上下文中,派生它的线程将无法直接获得它允许中出现的异常信息。Java 为我们提供了 UncaughtExceptionHandler 接口,从而得知是哪个线程在运行时出错,以及出现了什么样的错误。
@FunctionalInterface
public interface UncaughtExceptionHandler {
/**
* Method invoked when the given thread terminates due to the
* given uncaught exception.
* <p>Any exception thrown by this method will be ignored by the
* Java Virtual Machine.