我有一个使用 swing 的 Java 应用程序。我找到了一种在应用程序中捕获所有未捕获异常的方法(见下文)。我想记录一条消息,为用户显示一个带有消息的对话框并终止应用程序。问题是,我试图捕捉的是一些摆动异常。在 UncaughtExceptionHandler 中捕获异常后尝试显示对话框是不可能的,因为 Swing 线程已停止。有什么办法可以显示一个对话框吗?创建一个新的摆动线程或类似的东西?
谢谢!
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
boolean alreadyCaught = false;
public void uncaughtException(Thread t, Throwable e) {
if (alreadyCaught)
return;
alreadyCaught = true;
e.printStackTrace();
//show Dialog
}
});