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?
}
}
我想保留所有信息(尤其是消息和堆栈跟踪)。
答案 0 :(得分:5)
您正在寻找AggregateException
class。
答案 1 :(得分:2)
只需将您的列表捆绑到一个超级例外:
class MultiException : Exception
{
public List<Exception> ExceptionsList { get; set; }
}