RCP
アプリでグローバル例外処理をオーバーライドしたいと考えています。キャッチされていない例外が発生した場合はいつでもログに記録して(java
ログを使用して)、アプリケーションを終了します。私はすでにApplicationWorkbenchAdvisor
クラスのeventLoopException(Throwable exception)
メソッドを上書きしました。しかし、これはイベントループの例外だけをキャッチします。今のところ、私はまた、このようpostStartup()
メソッドを上書きしていますEclipse RCPアプリケーションのグローバル例外処理
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
の例外の表示を傍受しているためです。では、どのようにしてグローバル例外処理を適切に上書き/変更できるので、デフォルトのコードの代わりにコード(ログ)が使用されますか?