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
}
});