【发布时间】:2025-12-06 00:00:01
【问题描述】:
我有一个 Windows Phone 8.1 RT 应用程序。在应用程序中,我订阅了UnhandledException 事件,当应用程序中发生任何未处理的异常时会引发该事件。我将此事件绑定到一个事件处理程序,该处理程序由事件传递UnhandledExceptionEventArgs。
UnhandledExceptionEventArgs 有一个属性Exception,它有一个属性Stacktrace。问题是,我只能访问堆栈跟踪属性一次,因为在我访问它后它变为空。
当任何断点被命中并且您尝试使用光标或即时窗口访问参数中包含的值时,也可以观察到这种奇怪的行为。一旦我将光标悬停或访问即时窗口中的值,它就会变为空。
当我在读取Stacktrace 属性之前读取UnhandledExceptionEventArgs 的任何属性时,也会导致问题。假设e 是包含Message 和Exception 对象的UnhandledExceptionEventArgs 类型,则在访问e.Exception.Stacktrace 之前访问e.Message 会使e.Exception.Stacktrace 中包含的值为空。
知道为什么会观察到这种奇怪的行为吗?
【问题讨论】:
标签: c# windows-runtime windows-phone-8.1 winrt-xaml