Когда работаешь с Task, есть два основных подхода к обработке исключений:
Разница между ними критична для правильной обработки ошибок:
TaskИспользуй async Task для обработки исключений. Этот подход даёт предсказуемое, наблюдаемое управление ошибками и предотвращает падение приложения из-за необработанных исключений. Резервируй async void только для обработчиков событий, где фреймворк автоматически обрабатывает возвращаемый Task.
Главная разница — в наблюдаемости: async Task даёт тебе контроль над исключениями, а async void оставляет их неуправляемыми в thread pool.
Исключения, выброшенные в методах async void, захватываются в объекте Task и могут быть обнаружены через await, что делает их безопаснее, чем async Task для обработки ошибок.
Новый — ещё не проверен сообществом
Вы