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中的某个地方吗? 谢谢 弗兰克
答案 0 :(得分:0)
简短的回答:您不会。
CLR不在其他位置存储变量的名称。这里给出了解释:Getting the variable name for NullReferenceException。
但是您可以检查e.data
对象,该对象具有Keys
和Values
属性,因此您可以猜测哪个实例cas具有该值。
此外,您还可以获得有关引发异常的源代码行的信息:How to get the name of the method that caused the exception