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

WPF App: Uncatchable 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/WPF 应用程序的 collector/reader 类似 android DDMS 的日志?

谢谢!

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

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