Карточка Middle Исключения обновлено

AggregateException и await

Вопрос

Что происходит с исключениями при Task.WhenAll?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

Задача от WhenAll хранит все исключения в AggregateException. await пробрасывает только первое из них. .Wait() и .Result бросают сам AggregateException. Все ошибки можно получить через task.Exception.InnerExceptions.

Ответ

Задача от WhenAll хранит все исключения в AggregateException. await пробрасывает только первое из них. .Wait() и .Result бросают сам AggregateException. Все ошибки можно получить через task.Exception.InnerExceptions.

Разбор

Типичная ошибка: ловить AggregateException вокруг await, где он не появится.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.