我想重寫我的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();
}
});
}
它記錄異常在我的日誌文件,並退出應用程序。但它顯然是不正確的,並且在控制檯中顯示兩次異常,因爲我所做的只是攔截在用戶的gui dialog
中顯示的異常。那麼我該如何正確地覆蓋/更改全局異常處理,以便使用我的代碼(日誌)而不是默認的?