我有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;
}
Run Code Online (Sandbox Code Playgroud)
方法就是async/await方法。
这种方法用方法重写为状态机MoveNext。这就是为什么您的堆栈跟踪会将此方法识别为引发该异常的方法。
.NET Core 2.0 或 2.1 有内置或额外的 nuget 包,它们将修复这样的堆栈跟踪,以提及实际的方法而不是生成的方法。
您可以在此处阅读有关此内容的更多信息:Age of Ascent:.NET Core 2.1 中的 Stacktrace 改进。
但是,它可能无法修复 TargetSite,而且我认为它无法处理 .NET Framework。
| 归档时间: |
|
| 查看次数: |
4963 次 |
| 最近记录: |