在我的WPF应用程序中,一些用户得到“应用程序生成了一个无法处理的异常”错误。我已经实现了Application.DispatcherUnhandledException事件处理程序,但此事件不处理该异常。 是否有可能在应用程序外部发生异常导致关闭我的应用程序,可能是内存有什么?
答案 0 :(得分:6)
除了DispatcherUnhandledException之外,您可以尝试的一件事是侦听来自AppDomain的异常
AppDomain.CurrentDomain.UnhandledException +=
new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
理论上,这应该捕获与您的应用程序相关的所有异常,而不仅仅是在Dispatcher中运行的异常。
答案 1 :(得分:2)
您是否尝试将此添加到您的应用程序启动中?:
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
答案 2 :(得分:0)
根据我的经验,如果只有一些用户得到错误(并且这些用户一直得到错误),那么很可能项目文件引用了dll而没有将'CopyToLocal'属性设置为true - 因此假设所有用户将Gll安装在GAC中 - 某些用户可能不会这样做。
答案 3 :(得分:0)
如果您的处理程序被调用但异常仍未处理,则需要处理该事件:e.Handled=true;
请参阅:How to suppress UI exceptions in wpf?