捕获来自另一个Task方法的特定异常
本文关键字:异常 方法 Task 另一个 | 更新日期: 2023-09-27 17:53:03
我有这2个方法,我知道肯定DoSomethingAsync返回FormatException。但是它总是在最后一个catch " Exception "
中被捕获为什么CallSomethingAsync永远不会捕获FormatException?
public Task DoSomethingAsync()
{
//Do something that throws a FormatException
return Task.FromResult(0);
}
public virtual string CallSomethingAsync()
{
try
{
this.DoSomethingAsync().Wait();
return “Ok”;
}
catch (FormatException)
{
return “FormatException”;
}
catch (Exception)
{
return “GeneralException”;
}
}
由于任务可能返回一个或多个异常,因此它抛出一个AggregateException,其中包含在任务执行期间发生的所有异常。
你需要枚举InnerExceptions集合来显式地处理不同类型的Exception