13. diel - Propagácia a spracovanie výnimiek pri coroutines v Kotlin
V minulej lekcii, Hierarchie coroutines a typ SupervisorJob v Kotline , sme si predstavili nadradených a
podriadených coroutines typu Job
a propagáciu výnimiek.
Spracovanie výnimiek sme potom upravili pomocou "dozorcu", teda úpravou
nadradenej coroutine na typ SupervisorJob
.
V dnešnom tutoriále sa budeme ďalej zaoberať prácou s
výnimkami v coroutines. Pozrieme sa bližšie, ako sa výnimky
v coroutines propagujú a ako ovplyvňujú beh
ostatných coroutines. Predstavíme si tiež
CoroutineExceptionHandler
, ktorý nám umožňuje výnimku
spracovať.
Propagovanie a spracovanie výnimiek
Zo skorších dielov už vieme, že v hierarchii coroutines sa výnimky
propagujú od potomka k rodičom. Výnimka teda postupuje z podriadenej
coroutine ku coroutine nadradenej, ktorá ju spracováva. Pokiaľ vytvárame
nový CoroutineScope
, získavame novú inštanciu Job
.
Rovnako tak pri tvorbe coroutines pomocou bloku launch
získame
inštanciu typu Job
. Asi nás teda neprekvapí, že daný
CoroutineScope
bude fungovať ako rodič coroutines vytvorených v
jeho tele.
CoroutineScope
ako rodič
V nasledujúcom príklade vytvoríme CoroutineScope
typu
Dispatchers.Default
av ňom dve podriadené launch
coroutines. Prvá z nich bude
...koniec náhľadu článku...
Pokračuj ďalej
Minul si až sem a to je super! Veríme, že ti prvé lekcie ukázali niečo nového a užitočného.
Chceš v kurze pokračovať? Prejdi do prémiové sekcie.
Kúpiť tento kurz
Obsah článku spadá pod licenciu Premium, kúpou článku súhlasíš so zmluvnými podmienkami.
- Neobmedzený a trvalý prístup k jednotlivým lekciím.
- Kvalitné znalosti v oblasti IT.
- Zručnosti, ktoré ti pomôžu získať vysnívanú a dobre platenú prácu.
Popis článku
Požadovaný článok má nasledujúci obsah:
V tutoriále si ukážeme, ako sa v coroutines výnimky propagujú a ako ovplyvňujú beh ostatných. Využijeme tiež CoroutineExceptionHandler na ich spracovanie.
Kredity získaš, keď podporíš našu sieť. To môžeš urobiť buď zaslaním symbolickej sumy na podporu prevádzky alebo pridaním obsahu na sieť.