我应该如何收集异常并将其放入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
);
似乎对我来说是最合乎逻辑的方式。