Junior — Middle
Aké prístupy a metódy sa používajú na spracovanie chýb v Kotlin korutinách?
sobes.tech AI
Odpoveď od AI
V Kotlinu existuje niekoľko prístupov k spracovaniu chýb v korutinách:
- try-catch vo vnútri korutiny — najjednoduchší spôsob spracovania výnimiek. Môžete obaliť kód v
launchaleboasyncblok dotry-catch.
launch {
try {
// kód, ktorý môže vyvolať výnimku
} catch (e: Exception) {
// spracovanie chyby
}
}
- CoroutineExceptionHandler — špeciálny handler, ktorý možno odovzdať do kontextu korutiny. Zachytáva neobslúžené výnimky v korutinách spustených cez
launch.
val handler = CoroutineExceptionHandler { _, exception ->
println("Chytené $exception")
}
GlobalScope.launch(handler) {
throw RuntimeException("Chyba")
}
- Spracovanie chýb v async/await — pri použití
asyncsa výnimky nevyhadzujú okamžite, ale pri volaníawait(). Preto je potrebné obaliťawait()dotry-catch.
val deferred = async {
// kód
throw Exception("Chyba")
}
try {
deferred.await()
} catch (e: Exception) {
// spracovanie
}
- SupervisorJob a SupervisorScope — umožňujú izolovať chyby v deťoch korutín, aby jedna chyba nezrušila celý rodičovský scope.
Výber metódy závisí od kontextu a typu korutiny (launch alebo async).