Вступить в клуб →
лёгкаявопросasync/await, многопоточность и фоновые задачи

Исключение в методе отправки письма роняет весь процесс сервиса

public async void SendWelcomeEmail(User user)
{
    await _mailer.SendAsync(user.Email, "Добро пожаловать");
}

// вызов
try { SendWelcomeEmail(user); }
catch (Exception ex) { _log.LogError(ex, "mail failed"); }

Когда почтовый сервер недоступен, catch не срабатывает, а процесс аварийно завершается. Почему?

  • async void нельзя дождаться, его исключения не ловятся
  • try/catch не работает с асинхронным кодом вообще
  • SendAsync выбрасывает исключение синхронно
  • Нужно ловить AggregateException вместо Exception

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела