Application.UnhandledException和原始异常消息

时间:2012-11-21 22:27:04

标签: windows-8 microsoft-metro

我正在尝试访问导致UnhandledException的原始异常,但我看到的只是包含在UnhandledExceptionEventArgs.Message属性中的文本;

例如:

  • 我有点击处理程序的按钮视图:
 private void Button_Click_1(object sender, RoutedEventArgs e)
 {
     throw new NullReferenceException("Test exc");
 }
  • 在App构造函数中,我订阅了UnhandledException异常
 this.UnhandledException += App_UnhandledException;

 private void App_UnhandledException(object sender, UnhandledExceptionEventArgs e)
 {
     Debug.WriteLine(e.Message);
     Debug.WriteLine(e.Exception.ToString()); 
 }
  • 因此,我无法获得原始异常文本“Test exc”。我只有
  

Message = System.NullReferenceException at   W8.Controls.SearchControl.Button_Click_1(对象发送者,   RoutedEventArgs e)

     

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

提前感谢您的建议!

1 个答案:

答案 0 :(得分:0)

传播到UnhandledException的内容存在一些限制。 As documented

  

另一个限制是UnhandledException事件参数   不包含与原始异常一样多的细节。每当   如果应用程序需要特定的特定处理,则可能   例外,捕获传播时的异常总是更好,   因为可以获得更多细节。 UnhandledException事件   arguments通过Exception属性公开异常对象。   但是,此异常对象的类型,消息和堆栈跟踪   不保证与原始异常的那些匹配   提高。事件参数还公开Message属性。多数情况   例如,这将包含最初提出的消息   异常。