UWP 中奇怪的未处理异常的 StackTrace 行为

问题描述 投票:0回答:0

在我的 UWP 应用程序的

App.xaml.cs
文件中,我有以下代码来获取未处理的异常的
StackTrace
属性值并将其打印到调试输出:

private void OnAppUnhandledException(object sender, Windows.UI.Xaml.UnhandledExceptionEventArgs e)
{
    Exception exceptionThatDoesntGoAway = e.Exception;

    string stackTrace = exceptionThatDoesntGoAway.StackTrace;

    Debug.WriteLine("Exception Stacktrace: " + stackTrace);

    e.Handled = true;
}

我将异常保存到一个单独的变量中,因为存在另一个奇怪的行为,如果多次访问异常的内容将被删除以防我再次需要它。

然后,我将异常的

StackTrace
属性值保存到一个变量中,然后将它打印到调试输出中。

问题是在访问

StackTrace
属性之前和之后我得到两个不同的输出:

我在 Visual Studio 中观察了

exceptionThatDoesntGoAway
变量和
StackTrace
属性:

这是

StackTrace
变量(第一个观察项)的
exceptionThatDoesntGoAway
属性值:

虽然这是

exceptionThatDoesntGoAway.StackTrace
属性值,但我的应用文件(第二个观看项目)没有行号:

为什么即使它们是相同的

StackTrace
属性,值也会不同?

如何获得具有正确行号的第一个堆栈跟踪?是预期的行为吗?

c# .net exception uwp unhandled-exception
© www.soinside.com 2019 - 2024. All rights reserved.