我想安装某种全局处理程序来捕获任何ExceptionInInitializerError
,当加载某个类时,它可能从任何静态 block 抛出。目前,它将堆栈跟踪转储到 stderr 并退出应用程序。我想使用我的日志框架记录堆栈跟踪,然后退出应用程序。可能吗?
最佳答案
看起来 Thread.UncaughtExceptionHandler 就是您正在寻找的。p>
这个answer将为您提供更多信息。
本质上,您需要尽快安装默认异常处理程序:
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
public void uncaughtException(Thread t, Throwable e) {
if (e instanceof ExceptionInInitializerError) {
// do something with you're exception
// and than close application
System.exit(-1); // passing
}
}
});
关于java - 如何捕获ExceptionInInitializerError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38170461/