循环处理多个异常

埃洛洛斯

在我的代码中,方法在循环中反复被调用,如下所示:

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);
    }
}

考虑到不是将列表中的所有错误都扔掉,将异常信息返回给控制器的最佳方法是什么?

哈比卜

使用AggregateException

您可以将传递List<Exception>给其构造函数并将其抛出。

在循环结束时,请执行以下操作:

AggregateException aggregateEx = new AggregateException(errors);
throw aggregateEx;

(或返回AggregateException

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

while循环与异常处理

来自分类Dev

循环处理异常

来自分类Dev

Python处理多个异常

来自分类Dev

处理多个异常

来自分类Dev

在while循环中处理异常

来自分类Dev

循环中的Python异常处理

来自分类Dev

Junit循环处理预期的异常

来自分类Dev

在while循环中处理异常

来自分类Dev

循环中的Python异常处理

来自分类Dev

单个异常处理程序可处理多个可能的异常

来自分类Dev

单个异常处理程序,可处理多个可能的异常

来自分类Dev

在异步循环中处理超时异常

来自分类Dev

如何忽略异常并继续处理foreach循环?

来自分类Dev

未处理的事件循环异常-OutOfMemoryError

来自分类Dev

C#异常处理,暂时停止循环

来自分类Dev

处理多个KeyError异常的更优雅的方法

来自分类Dev

Django建模多个查询处理异常

来自分类Dev

python中的多个异常处理程序

来自分类Dev

替代多个try catch以处理异常

来自分类Dev

如何处理JSF多个意外异常?

来自分类Dev

如何处理多个值的 DBNull 异常

来自分类Dev

虽然循环不会以多个异常结束

来自分类Dev

使用重复循环查找多个异常值?

来自分类Dev

异常处理 - 捕获多个未按预期工作的异常

来自分类Dev

在多个循环中处理单选按钮行为

来自分类Dev

如何在不退出循环的情况下处理异常?

来自分类Dev

异常处理,捕获导致while循环停止的原因

来自分类Dev

使用循环进行输入验证和异常处理

来自分类Dev

处理异常时奇怪的嵌套循环行为