C# 如何读取堆栈跟踪?

C# 如何读取堆栈跟踪?,c#,exception,stack-trace,C#,Exception,Stack Trace,我希望这个问题能够在这样的规则下生存下来,因为我搜索了很多,没有找到关于它的文档,有时甚至忽略了它,但这让我无法理解问题和解决方案。Exception的StackeTrace有自己的描述问题的方式,是的,用一种人性化的语言,但是用我不知道的符号和代码,或者它来自哪里,这是我忽略的其中一个,因为我不明白它说什么,但我无法解决问题: 在System.Net.Http.HttpClientHandler+d_u63.MoveNext()中 [0x004ab]输入:0 ---来自引发异常的上一个位置的堆

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

在System.Net.Http.HttpClientHandler+d_u63.MoveNext()中 [0x004ab]输入:0 ---来自引发异常的上一个位置的堆栈结束跟踪---在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [0x0000c]英寸:0英寸 System.Runtime.CompilerServices.TaskWaiter.ThrowForNonSuccess (System.Threading.Tasks.Task任务)[0x0003e]中的 :0 at System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification 中的(System.Threading.Tasks.Task任务)[0x00028] :0 at System.Runtime.CompilerServices.TaskWaiter.ValidateEnd 中的(System.Threading.Tasks.Task任务)[0x00008] :0 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1+ConfiguredTaskAwaiter[TResult].GetResult ()[0x00000]英寸:0英寸 System.Net.Http.HttpClient+d__49.MoveNext() [0x000ca]输入:0 ---来自引发异常的上一个位置的堆栈结束跟踪---在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [0x0000c]英寸:0英寸 System.Runtime.CompilerServices.TaskWaiter.ThrowForNonSuccess (System.Threading.Tasks.Task任务)[0x0003e]中的 :0 at System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification 中的(System.Threading.Tasks.Task任务)[0x00028] :0 at System.Runtime.CompilerServices.TaskWaiter.ValidateEnd 中的(System.Threading.Tasks.Task任务)[0x00008] :0 at System.Runtime.CompilerServices.TaskAwaiter`1[TResult].GetResult() [0x00000]英寸:0英寸 PSProject.Helpers.Utility+d_u15.MoveNext()[0x00136]位于 D:\PSProject\PSProject\PSProject\PSProject\Helpers\Utility.cs:212

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

  • 什么是
    HttpClientHandler
    以及其所在地:
  • 这被提到了两次:
  • 来自引发异常的上一个位置的堆栈结束跟踪

    这是HttpClient类的内部代码吗


    如何了解StackTrace的大部分内容以了解异常?

    堆栈跟踪程序很复杂,因为您使用的是
    async/await
    。您不需要上述跟踪中的大部分信息。通常情况下,您可以忽略错误代码以及与
    waiter
    相关的任何内容

    找到第一个没有提到等待者的位置,通常你会在那里找到一个行号。这主要是引发您正在调查的
    异常的位置

    在您的示例中,这是一行:

    PSProject.Helpers.Utility+d_u15.MoveNext()[0x00136]位于d:\PSProject\PSProject\PSProject\Helpers\Utility.cs:212中


    这是第一个未提及
    等待器的位置。抛出
    异常的Utility.cs文件中的行号是212。

    问题1的答案是:
    HttpClientHandler
    是HTTP处理程序实现的一个类。是否使用mono?有关这些行的一些信息可以在类中找到,也可以在类中找到examples@ilansch对不起,我要开始学习Xamarin,对mono了解不多(我认为它完全是抽象的)