我应该如何收集异常并将其放入AggregateException中以重新引发?

对于我的特定代码,我有一个循环,并且部分代码会抛出零个或多个异常。我希望只是在出现新异常时将它们添加到AggregateException中,但是文档说明它应该一次构造所有异常(没有方法可以向对象添加Exception)。

每次创建一个新的AE,并将上一个AE包括在异常(exception)列表中,该怎么办?似乎是骗人的方法。

还有更好的主意吗?

最佳答案

你在说这样的话吗?

var exceptions = new List<Exception>();
foreach (var item in items) {
    try {
        DoSomething(item);

    } catch (Exception ex) {
        exceptions.Add(ex);
    }
}

if (exceptions.Count > 0)
    throw new AggregateException(
        "Encountered errors while trying to do something.",
        exceptions
    );

似乎对我来说是最合乎逻辑的方式。

09-08 06:34