为了账号安全,请及时绑定邮箱和手机立即绑定

在 Null 引用异常中使 MoveNext() 无效

在 Null 引用异常中使 MoveNext() 无效

C#
侃侃尔雅 2021-08-07 16:53:48
我有WebAPI一段代码,其中在使用我的记录器记录的 try 块中编写的代码中存在 Null 引用异常。但在TargetSite对中Exception得到记录,我收到虚空的MoveNext()而不是此代码的编写方法名。什么可能是相同的原因?public async Task<ResponseStatus> ProcessRCSCNotification(IList<RecurringSubscriptionModelV2> recurringSubscriptionList, string appCD)    {            foreach (var model in modelList){  // Some code  try  {     // Exception occurs here  }  catch (Exception ex)  {    // Logger is logging exception here  }}        return null;    }
查看完整描述

2 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

您有一个async带有多个awaits的方法。编译器将整个方法转换为状态机,而您的方法实际上只调用了这个状态机。

这个状态机类有上面提到的MoveNext()方法,它现在包含你真正想做的所有工作。

要分析您的内容,NullReferenceException您应该检查StackTrace异常的属性而不是TargetSite.


查看完整回答
反对 回复 2021-08-07
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

方法是一种async/await方法。

这种方法用一个MoveNext方法重写成状态机。这就是为什么您的堆栈跟踪会将此方法标识为抛出该异常的方法。

.NET Core 2.0 或 2.1 具有内置或额外的 nuget 包,可以修复这样的堆栈跟踪,以提及实际方法而不是生成的方法。

然而,它可能不会修复 TargetSite,而且我认为它不会处理 .NET Framework。


查看完整回答
反对 回复 2021-08-07
  • 2 回答
  • 0 关注
  • 264 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信