在我的代码中,方法在循环中反复被调用,如下所示:
foreach (var file in files)
{
SomeMethod(file);
}
该方法可能会引发异常,但是我不希望代码在第一个异常之后退出循环。
此外,上面的代码是从Web api控制器调用的,因此,我需要一种将所有异常信息传递回控制器的方法,在该控制器中将对它进行处理(记录异常并将错误响应返回给客户端)。
到目前为止,我所做的就是捕获所有异常并将其存储在列表中。
var errors = new List<Exception>();
foreach (var file in files)
{
try
{
SomeMethod(file);
}
catch(Exception ex)
{
errors.Add(ex);
}
}
考虑到不是将列表中的所有错误都扔掉,将异常信息返回给控制器的最佳方法是什么?
您可以将传递List<Exception>
给其构造函数并将其抛出。
在循环结束时,请执行以下操作:
AggregateException aggregateEx = new AggregateException(errors);
throw aggregateEx;
(或返回AggregateException
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句