Windows 8 Application.UnhandledException和原始异常消息

Windows 8 Application.UnhandledException和原始异常消息,windows-8,microsoft-metro,Windows 8,Microsoft Metro,我试图访问导致UnhandledException的原始异常,但我看到的只是UnhandledExceptionEventTargets.Message属性中包含的文本 例如: 我有带有单击处理程序的按钮视图: 在应用程序构造函数中,我已订阅未处理的异常 因此,我无法选择获取原始异常文本“testexc”。我所拥有的只是 Message=System.NullReferenceException位于 W8.控件.搜索控件.按钮\u单击\u 1(对象发送器, 路线(东) Excepti

我试图访问导致UnhandledException的原始异常,但我看到的只是UnhandledExceptionEventTargets.Message属性中包含的文本

例如:

  • 我有带有单击处理程序的按钮视图:
  • 在应用程序构造函数中,我已订阅未处理的异常
  • 因此,我无法选择获取原始异常文本“testexc”。我所拥有的只是
Message=System.NullReferenceException位于 W8.控件.搜索控件.按钮\u单击\u 1(对象发送器, 路线(东)

Exception=System.NullReferenceException:对象引用未设置为 对象的实例


提前感谢您的建议

传播到未处理异常的内容有一些限制:

另一个限制是未处理的异常事件参数 不包含与原始异常一样多的详细信息。无论何时 可能,如果应用程序需要特定的处理 异常,在异常传播时捕获异常总是更好的, 因为将提供更多详细信息。未处理的异常事件 参数通过exception属性公开异常对象。 但是,此异常对象的类型、消息和堆栈跟踪 不保证与之前的原始异常匹配 提高。事件参数还公开消息属性。大多数 案例中,这将包含最初提出的 例外

 private void Button_Click_1(object sender, RoutedEventArgs e)
 {
     throw new NullReferenceException("Test exc");
 }
 this.UnhandledException += App_UnhandledException;

 private void App_UnhandledException(object sender, UnhandledExceptionEventArgs e)
 {
     Debug.WriteLine(e.Message);
     Debug.WriteLine(e.Exception.ToString()); 
 }