WPF应用程序:无法捕获的异常?

时间:2015-01-19 04:34:09

标签: c# wpf exception

我在App.xaml.cs中有这些行,以全局捕获异常:

this.Dispatcher.UnhandledException += new
    DispatcherUnhandledExceptionEventHandler(
        Current_DispatcherUnhandledException);
AppDomain.CurrentDomain.UnhandledException += new
    UnhandledExceptionEventHandler(
        CurrentDomain_UnhandledException);
Application.Current.DispatcherUnhandledException += new
    DispatcherUnhandledExceptionEventHandler(
        Current_DispatcherUnhandledException);

可以捕获大多数异常并生成日志文件,以便我知道导致错误的原因。但在我的客户的PC上(只有Windows 8有 这个问题),WPF应用程序有时会崩溃但我无法获取异常日志,这意味着上面的异常处理程序没有被调用。

我可以设置任何处理异常的处理程序吗?或者是否有像Windows DDF for Windows / WPF应用程序的日志收集器/阅读器?

谢谢!

1 个答案:

答案 0 :(得分:1)

从.NET 4.0开始,您可以尝试HandleProcessCorruptedStateExceptionsAttribute此属性允许您处理自.Net 4终止进程以来的异常。这是相当危险的,因为即使内存已损坏,您也允许进程继续(处理异常)。

一般情况下:在捕获此类异常后不要信任该应用程序。记录异常并停止应用程序。只有当您知道导致异常的原因并且您确定应用程序可以恢复时,您才能将此属性应用于方法并使其恢复正常执行。