Sobes.tech
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.