アプリでグローバルな例外処理をオーバーライドしたいと考えていますRCP
。キャッチされていない例外が発生するたびに、(ログを使用してjava
) ログに記録し、アプリを終了します。クラスのeventLoopException(Throwable exception)
メソッドは既に上書きしています。ApplicationWorkbenchAdvisor
ただし、これはイベント ループの例外のみをキャッチします。postStartup()
今のところ、次のようにメソッドも上書きしました。
public void postStartup()
{
Policy.setStatusHandler(new StatusHandler()
{
@Override
public void show(IStatus status, String title)
{
LOGGER.log(Level.SEVERE, "Uncaught Exception", status.getException());
UnexpectedErrorDialog();
PlatformUI.getWorkbench().close();
}
});
}
ログファイルに例外を記録し、アプリを終了します。しかし、それは明らかに正しくなく、コンソールに例外が 2 回表示されgui dialog
ます。これは、ユーザーへの例外の表示をインターセプトすることだけです。では、グローバル例外処理を適切に上書き/変更して、デフォルトのコード (ログ) の代わりに使用するにはどうすればよいでしょうか?