1

我正在使用C#和WPF開發Microsoft Word加載項。在Microsoft顯示錯誤消息之前在Word加載項中捕獲C#WPF未處理的異常

在我的一個窗口中,助手類在事件中拋出異常。我想讓這個異常冒泡到窗口級別,這樣我就可以捕捉它並向用戶顯示一條錯誤消息。因爲它在助手類中的一個事件中,所以我不能在窗口代碼中用try/catch塊來包圍方法調用來捕獲它。

Application.Current返回null,所以我不能使用Application Dispatcher。

我可以使用Dispatcher.CurrentDispatcher.UnhandledException並添加一個DispatcherUnhandledExceptionEventHandler它。這作品和例外被捕獲。然而,微軟顯示發生在您的應用程序

之前我調用事件處理程序錯誤消息

未處理的異常。

我試圖用錯誤的方式解決這個問題,或者有沒有辦法來抑制微軟的未處理的異常錯誤信息?

謝謝。

回答

1

使用UnhandledExceptionFilter在Microsoft Word捕獲異常並引發未處理的異常消息之前捕獲異常。

Dispatcher.CurrentDispatcher.UnhandledExceptionFilter += 
    new DispatcherUnhandledExceptionFilterEventHandler(Dispatcher_UnhandledExceptionFilter); 

void Dispatcher_UnhandledExceptionFilter(object sender, DispatcherUnhandledExceptionFilterEventArgs e) 
{ 
    e.RequestCatch = false; 
    // Display error message or close the window. 
} 

確保將RequestCatch設置爲false,以便Word不處理異常。

相關問題