在我使用 webApi 的客户端应用程序中,我有很多方法可以像这样异步调用 webApi:
var task = Task.Run(async () => await this.SaveObject(User));
return task.Result.Content;
如果保存的对象有问题,异步函数可能会抛出异常。在这种情况下,我的异常将根据它的类型在客户端上处理。问题是当异步任务抛出异常时,task.Result.Content埋在System.AggregateException.
现在我是这样处理的:
try
{
var task = Task.Run(async () => await this.saveObject(User)); return task.Result.Content;
}
catch(AggregateException ex)
{
throw ex.InnerException;
}
我有太多方法以同样的方式做到这一点。我想知道是否有办法避免在每种方法中使用 try/catch 块。也许有一种异常过滤机制,有点像在 webApi 上使用的那样在一个地方捕获类中的所有异常?也许我可以用某些属性标记所需的方法?
墨色风雨
相关分类