elo*_*los 5 c# exception-handling exception
在我的代码中,一个方法在循环中被重复调用,如下所示:
foreach (var file in files)
{
SomeMethod(file);
}
Run Code Online (Sandbox Code Playgroud)
该方法可能会抛出异常,但我不希望代码在第一个异常后退出循环.
此外,上面的代码是从web api控制器调用的,所以我需要一种方法将所有异常信息传递回控制器,在那里它将被处理(记录异常并向客户端返回错误响应).
到目前为止我所做的是捕获并将所有异常存储在列表中.
var errors = new List<Exception>();
foreach (var file in files)
{
try
{
SomeMethod(file);
}
catch(Exception ex)
{
errors.Add(ex);
}
}
Run Code Online (Sandbox Code Playgroud)
考虑到重新抛出列表中的所有错误不是一种选择,将异常信息返回给控制器的最佳方法是什么?
您可以将 传递List<Exception>
给其构造函数并抛出它。
在循环结束时执行以下操作:
AggregateException aggregateEx = new AggregateException(errors);
throw aggregateEx;
Run Code Online (Sandbox Code Playgroud)
(或返回AggregateException
)