我正在使用以下代码在 WPF 应用程序中显示未处理的异常:
public MyApplication() {
this.DispatcherUnhandledException += (o, e) => {
var exceptionMessage = new ExceptionWindow();
exceptionMessage.ExceptionMessage.Text = e.Exception.Message;
exceptionMessage.ExceptionCallStack.Text = e.Exception.StackTrace;
exceptionMessage.ExceptionInnerException.Text = e.Exception.InnerException.Message;
exceptionMessage.WindowStartupLocation = WindowStartupLocation.CenterScreen;
exceptionMessage.WindowStyle = WindowStyle.ToolWindow;
exceptionMessage.ShowDialog();
e.Handled = true;
Shell.Close();
};
}
原来我在应用程序的实例化过程中遇到了一个异常,所以应用程序构造函数永远不会执行。
重现它的一种简单方法(有一个不同的例外)是在应用程序的配置文件中的某个标记之前引入一个额外的“<”并运行它。
在调用应用程序构造函数之前会出现类似的无用错误消息。 替代文本 http://srtsolutions.com/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/mikewoelmer/ExceptionWPF1_5F00_1C1F39AA.jpg
有谁知道如何捕捉这种异常?
备注:我正在使用Caliburn,我的应用程序扩展了 CaliburnApplication。