.net - 在我自己的代码中抛出 AggregateException

标签 .net exception

我应该如何收集异常并将它们放入 AggregateException重新扔?

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

每次都创建一个新的 AE 并且只在异常(exception)列表中包含以前的 AE 怎么样?似乎是一种愚蠢的方式来做到这一点。

有什么更好的想法吗?

最佳答案

你在谈论这样的事情吗?

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

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

关于.net - 在我自己的代码中抛出 AggregateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3025525/

相关文章:

java - 如何从 .t​​xt 文件中读取数字并以单字数字的形式打印出来? IE。 30= 三个零 1= 一

c# - 使用星号时导致程序集版本增加的原因是什么?

.net - 最佳 JIT 优化

C# - GC.GetTotalMemory() 问题

ruby - 重新引发异常与子异常

python - 避免引发 IndexError

java - 错误 : unreported exception java. io.IOException;必须被捕获或宣布被扔出

.net - XAML 中是否有公认的缩进属性样式?

c# - 如何在 .net 中检测来自麦克风的声音

Java - 在调用堆栈中处理更高的异常?