Как я должен пойти о собирающихся исключениях и помещении их в AggregateException, чтобы повторно бросить?
Для моего определенного кода я имею цикл и буду иметь нуль или больше исключений брошенными от части кода. Я надеялся просто добавить новые исключения к AggregateException, как они возникают, но вид документации указывает, что должен быть создан за всеми Исключениями сразу (нет никакого метода для добавления Исключения к объекту).
И что относительно того, чтобы создать новый AE каждый раз и только включая предыдущий 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
);
Мне кажется, это наиболее логичный способ.
Самый простой способ - добавить исключения в список до тех пор, пока вы не будете готовы выбросить AggregateException.
Мне кажется странным, что вы захотите вернуть старые исключения в следующий раз, когда создадите AggregateException, но если вы сохраните свой список, вы можете просто создать новое исключение AggregateException из этого.