Код вроде бы нормальный:
- API для регистрации вызывает
UserService -
UserService сохраняет пользователя и вызывает EmailService -
EmailService отправляет письмо через SmtpClientНо если присмотреться —
SendWelcomeEmail помечен как **async void** ❗️Почему это проблема?
❌
async void делает невозможным отлов исключений. Если внутри
SendEmailAsync() что-то пойдёт не так — try/catch не сработает. Исключение пролетит мимо и может тихо крашнуть приложение или вызвать странные баги.
Почему так?
🔸
async void не возвращает Task, значит await невозможен 🔸 Исключения из таких методов не перехватываются обычным образом
✅ Как правильно:
Всегда возвращай
Task — только так можно надёжно обрабатывать ошибки.📌 Запомни правило:
async void допустим только в event‑handler’ах. Больше — нигде.Ты уже сталкивался с этой ловушкой? Пиши свои фейлы или советы 👇
