Application_DispatcherUnhandledException问题

时间:2018-11-13 20:29:27

标签: c# exception-handling app.xaml

private void Application_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
MessageBox.Show($"e.Exception?.Message}\n*********\n*e.Exception?.Data.ToString()}**********{e.Exception.StackTrace}");
         e.Handled = true;
}

我在App.xaml.cs中使用上面的代码来捕获我的代码中未处理的任何错误。 如果消息为:已添加具有相同键的项目。 因为我试图在字典中插入现有的键,我怎么知道它是哪本字典? 那是e中的某个地方吗? 谢谢 弗兰克

1 个答案:

答案 0 :(得分:0)

简短的回答:您不会。

CLR不在其他位置存储变量的名称。这里给出了解释:Getting the variable name for NullReferenceException

但是您可以检查e.data对象,该对象具有KeysValues属性,因此您可以猜测哪个实例cas具有该值。

此外,您还可以获得有关引发异常的源代码行的信息:How to get the name of the method that caused the exception