2013-08-28 174 views
1

我們正在開發基於eclipse的產品(它是一個eclipse插件,我們有大約60多個插件項目),我使用log4j作爲日誌框架並使用它記錄業務錯誤邏輯方面。但我沒有找到一個方法來處理它的Eclipse拋出的情況下,用戶界面錯誤如果在UI任何錯誤,例如:在Eclipse Plugin中處理未處理的事件循環異常

Caused by: org.eclipse.swt.SWTException: Widget is disposed 

我說的這些類型的錯誤。那麼,如何處理這個異常,以便我可以登錄我們的日誌文件,以便可以識別錯誤。

我試過this stackoverflow的問題,基本上它說覆蓋public void eventLoopException(Throwable exception)WorkbenchAdvisor類。

我試過這樣的,在這樣我們的UI插件項目之一:

public class CustomWorkbenchAdvisor extends WorkbenchAdvisor { 
    @Override 
    public void eventLoopException(Throwable exception) { 
     System.out.println("Error occured"); 
     super.eventLoopException(exception); 
    } 
} 

我delbrately創建的UI錯誤,但是當我看到我的控制檯,我沒有看到「出現錯誤」顯示而是顯示:

!MESSAGE Unhandled event loop exception 

With stacktrace。任何人都可以指導我如何處理這些類型的錯誤?

+0

您如何告訴Eclipse使用您的CustomWorkbenchAdvisor? –

+0

@ greg-449,是的,這是我懷疑的地方。我應該配置它在什麼地方?我不知道。 –

+0

您必須在創建應用程序的PlatformUI.createAndRunWorkbench調用中指定它。此調用位於應用程序plugin.xml中擴展點的條目中指定的主應用程序類中。 –

回答

0

您必須在創建應用程序的PlatformUI.createAndRunWorkbench調用中指定您自定義WorkbenchAdvisor。此調用位於應用程序plugin.xml中<application>擴展點的<run>條目中指定的主應用程序類中。

+0

嗨,它工作,如果我把它作爲一個RCP應用程序,但它不適用於插件:( –

+0

對於非RCP插件,你可以看看你是否可以使用org.eclipse.ui.statusHandlers擴展點來定義一個狀態處理程序。 –

相關問題