执行此代码后:
try
{
DoSomething();
}
catch (TaskCanceledException e)
{
DealWithCancelledTaskException(e);
throw;
}
catch (Exception e)
{
DealWithNormalException(e);
throw;
}
引发异常。
DoSomething
应该抛出TaskCancelledException
,但会抛出System.AggregateException
,其中包含TaskCancelledException
类型的一个例外,并且会被视为正常Exception
。
如何将此例外标记为TaskCancelledException
?
答案 0 :(得分:3)
您的代码最有可能抛出AggregateException
首先尝试显式捕获AggregateException。然后,要访问由聚合异常包装的异常,请使用InnerException
属性。您还可以通过访问InnerExceptions
属性来访问已聚合的所有异常列表(如果有或可能多于1),该属性为您提供此异常聚合的异常列表