【发布时间】:2015-11-25 23:29:25
【问题描述】:
我对 WPF 很陌生,但发现能够捕获任何未处理的异常真是太棒了。我放了
this.Dispatcher.UnhandledException += Dispatcher_UnhandledException;
在我的类的构造函数中。这导致我用
困住它private void Dispatcher_UnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
e.Handled = true;
...
}
起初它不起作用,但后来我发现要使它起作用,我必须在发行版和 VS IDE 之外运行它。这样就行了。
我想要尽可能多地获取有关导致异常的原因的信息。可能是异常类型、s/r、行和提供的任何其他内容。
目前正在做
int a = 0;
int b = 3 / a;
并通过放置
MessageBox.Show(e.ToString() + " " + sender.ToString());
我明白了:
所以这不是正确的方法。
我知道我没有在问题中提供必要的信息,但我已经搜索了各种答案,但没有人报告我需要什么。如果是这样,在关闭之前保存任何数据可能很有用,但不是关于关闭,但不是检测导致异常的原因
当我退出时更重要的是
Environment.Exit(-1)
我发现进程仍在运行,这是一个问题。 这里Terminate application after unhandled exception 说我必须终止我的进程,在未处理的异常之后关闭我的应用程序真的是正确的方法吗?
感谢您的帮助
【问题讨论】:
-
您正面临 DivideByZeroException
-
谢谢,这只是一个例子
标签: c# wpf unhandled-exception