问题描述
我正在使用C#和WPF开发Microsoft Word加载项。
I am developing a Microsoft Word Add-in using C# and WPF.
在我的一个窗口中,辅助类在事件中引发异常。我希望异常上升到窗口级别,以便我可以捕获它并向用户显示错误消息。因为它是在helper类的一个事件中,所以我不能只在try / catch块中用一个try / catch块来包围窗口代码中的方法调用。
In one of my windows, a helper class is throwing an exception in an event. I want the exception to bubble up to the window level so that I can catch it and display an error message to the user. Because it's in an event in the helper class, I can't just surround a method call in the window code with a try/catch block to catch it.
应用程序。当前返回null,所以我不能使用Application Dispatcher。
Application.Current returns null so I cannot use the Application Dispatcher.
我可以使用 Dispatcher.CurrentDispatcher.UnhandledException
并添加一个 DispatcherUnhandledExceptionEventHandler
。 有效,并且捕获了异常。但是,Microsoft显示
I can use Dispatcher.CurrentDispatcher.UnhandledException
and add a DispatcherUnhandledExceptionEventHandler
to it. This works and the exception is caught. However, Microsoft displays the
错误消息之前被调用了我的事件处理程序。
error message before my event handler is called.
我试图用错误的方式解决此问题吗?一种抑制Microsoft未处理的异常错误消息的方法?
Am I trying to solve this problem the wrong way or is there a way to suppress Microsoft's unhandled exception error message?
推荐答案
在Microsoft Word捕获异常并引发异常之前,使用UnhandledExceptionFilter捕获异常。
Use UnhandledExceptionFilter to catch the exception before Microsoft Word catches the exception and throws the unhandled exception message.
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不会处理该异常。
Make sure to set RequestCatch to false so that Word does not handle the exception.
这篇关于Microsoft显示错误消息之前,在Word加载项中捕获C#WPF未处理的异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!