首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在我自己的代码中抛出一个AggregateException

在我自己的代码中抛出一个AggregateException
EN

Stack Overflow用户
提问于 2010-06-12 03:09:25
回答 2查看 14.6K关注 0票数 25

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

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

如果每次都创建一个新的AE,并且只将以前的AE包含在异常列表中呢?这似乎是一种做作的方式。

有更好的主意吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-12 04:02:21

你是在说这样的事情吗?

代码语言:javascript
复制
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
    );

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

票数 53
EN

Stack Overflow用户

发布于 2010-06-12 03:13:39

最简单的方法是将异常添加到列表中,直到您准备好抛出AggregateException。

对我来说,下一次创建AggregateException时想要返回旧的异常似乎很奇怪,但是如果您保留了您的列表,那么您就可以由此构建一个新的AggregateException。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3025525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档