Junior — Middle
Jak implementovat zpracování výjimek v asynchronních korutinách?
sobes.tech AI
Odpověď od AI
V Kotlinu lze při práci s korutinami pro zpracování výjimek používat bloky try-catch uvnitř samotné korutiny nebo aplikovat speciální konstrukce, jako je CoroutineExceptionHandler.
Příklad s try-catch uvnitř korutiny:
launch {
try {
val result = someSuspendFunction()
println(result)
} catch (e: Exception) {
println("Chyba: ${e.message}")
}
}
Pokud je korutina spuštěna přes launch, předané neřešené výjimky jsou předány CoroutineExceptionHandler:
val handler = CoroutineExceptionHandler { _, exception ->
println("Zpracovaná výjimka: ${exception.message}")
}
GlobalScope.launch(handler) {
throw RuntimeException("Chyba v korutině")
}
Tímto způsobem lze efektivně spravovat chyby v asynchronním kódu.