被捕获为System.AggregateException

时间:2018-02-19 09:11:35

标签: c# exception

执行此代码后:

try
{
    DoSomething();
}
catch (TaskCanceledException e)
{
    DealWithCancelledTaskException(e);
    throw;
}
catch (Exception e)
{
    DealWithNormalException(e);
    throw;
}

引发异常。 DoSomething应该抛出TaskCancelledException,但会抛出System.AggregateException,其中包含TaskCancelledException类型的一个例外,并且会被视为正常Exception

如何将此例外标记为TaskCancelledException

1 个答案:

答案 0 :(得分:3)

您的代码最有可能抛出AggregateException

首先尝试显式捕获AggregateException。然后,要访问由聚合异常包装的异常,请使用InnerException属性。您还可以通过访问InnerExceptions属性来访问已聚合的所有异常列表(如果有或可能多于1),该属性为您提供此异常聚合的异常列表