gpt4 book ai didi

c# - 如何读取 StackTrace?

转载 作者:行者123 更新时间:2023-12-04 13:03:23 27 4
gpt4 key购买 nike

我希望这个问题能够在 SO 的规则下存活下来,因为我进行了很多搜索,没有找到关于它的文档,有时甚至忽略了它,但这让我既不理解问题也不理解解决方案。 Exceptoion 的 StackeTrace 有它自己的描述问题的方式,是的,用一种人性化的语言,但带有我不知道的符号和代码,也不知道它来自哪里,这是其中之一这些我忽略了,因为我不明白它说的是什么,但我无法解决问题:

at System.Net.Http.HttpClientHandler+d__63.MoveNext () [0x004ab] in <35658e59c86d40bdbb2ef0bb34b4f0c7>:0 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <657aa8fea4454dc898a9e5f379c58734>:0 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <657aa8fea4454dc898a9e5f379c58734>:0 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <657aa8fea4454dc898a9e5f379c58734>:0 at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <657aa8fea4454dc898a9e5f379c58734>:0 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult () [0x00000] in <657aa8fea4454dc898a9e5f379c58734>:0 at System.Net.Http.HttpClient+d__49.MoveNext () [0x000ca] in <35658e59c86d40bdbb2ef0bb34b4f0c7>:0 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <657aa8fea4454dc898a9e5f379c58734>:0 at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <657aa8fea4454dc898a9e5f379c58734>:0 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <657aa8fea4454dc898a9e5f379c58734>:0 at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task task) [0x00008] in <657aa8fea4454dc898a9e5f379c58734>:0 at System.Runtime.CompilerServices.TaskAwaiter`1[TResult].GetResult () [0x00000] in <657aa8fea4454dc898a9e5f379c58734>:0 at PSProject.Helpers.Utility+d__15.MoveNext () [0x00136] in D:\PSProject\PSProject\PSProject\PSProject\Helpers\Utility.cs:212

当我尝试通过 HttpClient.PostAsync 从 Wi-Fi 网络而不是移动数据(这是一个 Xamarin 应用程序)通过 Web 服务获取数据时,会引发异常。我能从那条痕迹中了解到什么?例如:

  1. 什么是HttpClientHandler及其所在位置:

in <35658e59c86d40bdbb2ef0bb34b4f0c7>

  1. 这被提到了两次:

End of stack trace from previous location where exception was thrown

这是 HttpClient 类的内部代码吗?

如何最了解StackTrace以了解异常?

最佳答案

堆栈跟踪器很复杂,因为您正在使用 async/await。您不需要上述跟踪中的大部分信息。大多数情况下,您可以忽略错误代码和与 awaiter 相关的任何内容。

找到第一个没有提到 awaiter 的位置,大多数情况下你会在那里找到一个行号。这主要是引发您正在调查的 Exception 的位置。

在你的例子中是这一行:

PSProject.Helpers.Utility+d__15.MoveNext () [0x00136] in D:\PSProject\PSProject\PSProject\PSProject\Helpers\Utility.cs:212

这是第一个没有提到awaiter的位置。 Utility.cs 文件中抛出 Exception 的行号是 212

关于c# - 如何读取 StackTrace?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48042021/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com