TGViewer
C# (C Sharp) programming C# (C Sharp) programming @csharp_ci · 18.1K subscribers
Post #1453 5.81K
😬 Почти каждый разработчик делал эту ошибку

Код вроде бы нормальный:
- API для регистрации вызывает UserService
- UserService сохраняет пользователя и вызывает EmailService
- EmailService отправляет письмо через SmtpClient

Но если присмотреться — SendWelcomeEmail помечен как **async void** ❗️

Почему это проблема?

❌ async void делает невозможным отлов исключений.
Если внутри SendEmailAsync() что-то пойдёт не так — try/catch не сработает.
Исключение пролетит мимо и может тихо крашнуть приложение или вызвать странные баги.

Почему так?

🔸 async void не возвращает Task, значит await невозможен
🔸 Исключения из таких методов не перехватываются обычным образом

✅ Как правильно:
Всегда возвращай Task — только так можно надёжно обрабатывать ошибки.

📌 Запомни правило:
async void допустим только в event‑handler’ах. Больше — нигде.

Ты уже сталкивался с этой ловушкой? Пиши свои фейлы или советы 👇
More from @csharp_ci
  1. Oct 5, 2026Одна задача, три языка: Rust, C# или C++? В курсе Google *Comprehensive Rust* есть упражне…
  2. Oct 5, 2026🦈 Открытое собеседование на Middle C# | 6 октября, 19:00 МСК Приглашаем на открытое собес…
  3. Oct 4, 2026🖥 .NET 10 научился класть объекты на стек: escape analysis в JIT Одна из самых полезных о…
  4. Oct 3, 2026Самый неожиданный кандидат на звание самого быстрого JSON-сериализатора для .NET сейчас де…
  5. Oct 2, 2026Post #1891
  6. Sep 29, 2026🖥 C# снова показывает, что «удобный язык = медленный язык» давно не работает. Автор ttfx…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →