Junior — Middle
Ako implementovať spracovanie výnimiek v asynchrónnych korutinách?
sobes.tech AI
Odpoveď od AI
V Kotlinu môžete na spracovanie výnimiek v korutinách použiť bloky try-catch priamo v korutine alebo použiť špeciálne konštrukcie ako CoroutineExceptionHandler.
Príklad s try-catch v korutine:
launch {
try {
val result = someSuspendFunction()
println(result)
} catch (e: Exception) {
println("Chyba: ${e.message}")
}
}
Ak je korutina spustená cez launch, neobslúžené výnimky sa prenášajú na CoroutineExceptionHandler:
val handler = CoroutineExceptionHandler { _, exception ->
println("Spracovaná výnimka: ${exception.message}")
}
GlobalScope.launch(handler) {
throw RuntimeException("Chyba v korutine")
}
Týmto spôsobom môžete flexibilne spravovať chyby v asynchrónnom kóde.