Sobes.tech
Junior — Middle

Hogyan valósítható meg a kivételek kezelése aszinkron korutinákban?

sobes.tech MI

Válasz az MI-től

Kotlinban a korutinokban kivételeket try-catch blokkokkal lehet kezelni a korutinon belül vagy speciális szerkezetek, például a CoroutineExceptionHandler alkalmazásával.

Példa try-catch használatára a korutinon belül:

launch {
    try {
        val result = someSuspendFunction()
        println(result)
    } catch (e: Exception) {
        println("Hiba: ${e.message}")
    }
}

Ha a korutina a launch segítségével indul, a nem kezelt kivételek átadódnak a CoroutineExceptionHandler-nek:

val handler = CoroutineExceptionHandler { _, exception ->
    println("Kezelt kivétel: ${exception.message}")
}

GlobalScope.launch(handler) {
    throw RuntimeException("Hiba a korutinában")
}

Így rugalmasan kezelheti a hibákat az aszinkron kódban.