我想在我的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();
}
});
}
它在我的日志文件中记录异常并退出应用程序。但这显然是不对的,异常在控制台中显示了两次,因为我所做的只是拦截向gui dialog
用户显示的异常。那么如何正确覆盖/更改全局异常处理,以便使用我的代码(日志)而不是默认代码?