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

Share with your friend now:
tgoop.com/csharp_ci/1453