public void DoRiskyThings(List<Action> tasks)
{
List<Exception> exceptions = new List<Exception>();
foreach(Action task in tasks)
{
try {task()}
catch (Exception e) {exceptions.Add(e)};
}
if (exceptions.Any())
{
//... what goes here?
}
}
我想保留所有的信息(尤其是消息和堆栈跟踪)。发生了多个异常,重新抛出的正确方法是什么?
看到这个高度upvoted答案:http://stackoverflow.com/a/178464/555547 – Jason 2012-02-24 21:14:24
@Jason这是伟大的,但重新抛出的该方法仅从捕获块内工作。我在它之外。 – 2012-02-24 21:16:06
@Jason:他想抛出_multiple_异常。这是行不通的。 – SLaks 2012-02-24 21:16:06