TGViewer
Dolgo.polo Dev | Денис Долгополов Dolgo.polo Dev | Денис Долгополов @dolgo_polo_dev · 2.18K subscribers
Post #75 2.6K
​​Как перехватывать Exception в Coroutine. Часть 3

Факты, которые нам понадобятся:

• корутина верхнего уровня — корутина, чьим родителем является Scope, а не другая корутина

scope.launch { — верхнего уровня
launch { } — не верхнего
}


• CoroutineExceptionHandler — получатель необработанных ошибок

Его можнно назначить в конструкторе Scope или в билдере launch() верхнего уровня, если его родитель Scope(SupervisorJob)


• два понятия, которые нельзя путать:

throws (выбрасывать)

если ошибка выброшена, то она поднимается по стеку вызова функций, пока не попадется в try-catch или Thread.UncaughtExceptionHandler


propagate (распространять)

если ошибка распространяется, то она игнорирует блоки try-catch и передается от дочерний корутины к родителю

если ошибка добралась до коренного Scope, а у него не установлен CoroutineExceptionHandler, то ошибка передается в Thread.UncaughtExceptionHandler


• при создании Scope можно назначить два вида Coroutine Context:

Job — если внутри Scope появляется ошибка, не перехваченная try-catch, то Scope завершает работу всех дочерних корутин, завершается сам и распространяет ошибку

SupervisorJob — если внутри Scope появляется ошибка, не перехваченная try-catch, то Scope распространяет ошибку, не завершая дочерние корутины и себя


• CancellationException — особый вид ошибки. Выбрасывается, когда корутина была остановлена с помощью cancel()

Она, в отличие от остальных ошибок, не останавливает родительский Scope и не влияет на работу остальных корутин в Scope

....

если какой-то из пунктов вызывает вопросы — готов расписать подробнее в комментариях)

и нам наконец хватает знаний, чтобы перейти к практике в следующем посте
  • ❤ 5
  • 👍 5
  • 🎉 1
More from @dolgo_polo_dev
  1. Jun 22, 2026Медиалента — то, что пользователь реально ощущает физически: скроллы, зумы, тапы. Любые ми…
  2. Jun 20, 2026👮‍♀️ Как VPN видит трафик всех приложений? технически VPN на андроид — это сервис внутри…
  3. Jun 13, 2026Дуров опять не старается 🍌🍌🍌 Пару месяцев назад команду телеграма ругали за то, что они…
  4. May 24, 2026🧬Может ли VPN ускорить интернет? Интуиция подсказывает — точно нет Добавляется лишний сер…
  5. May 22, 2026кто же знал, что основным выгодополучателем max 📲 окажется habr.com любая статья набирает…
  6. May 6, 2026вы снова не туда воюете сначала все пушили Compose типо верстать в 2 раза быстрее, можно с…
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 →