如果满足条件,我的异步方法将在最后抛出异常。事实证明,它总是抛出例外。为什么? (VS 2015.NET 4.7.1)
事实证明,如果我添加多余的返回或等待Task.CompletedTask,它会按预期工作
这引发异常:
public static async Task Test()
{
var date1 = new DateTime(2019, 1, 1);
var date2 = new DateTime(2018,1,1);
var t = date1 < date2;
if (t)
{
throw new InvalidOperationException();
}
}
这不是:
public static async Task Test()
{
var date1 = new DateTime(2019, 1, 1);
var date2 = new DateTime(2018,1,1);
var t = date1 < date2;
if (t)
{
throw new InvalidOperationException();
}
return;
}
这是怎么回事?
更新 事实证明,该异常并未真正引发。仅仅是VS调试器,给人留下了进入抛出异常的代码的印象,如下面的屏幕截图