Sobes.tech
Junior — Middle

Kā īstenot izņēmumu apstrādi asinhronajās korutīnās?

sobes.tech AI

Atbilde no AI

Kotlinā, korutīnās izņēmumu apstrādei var izmantot try-catch blokus pašā korutīnā vai piemērot īpašas konstrukcijas, piemēram, CoroutineExceptionHandler.

Piemērs ar try-catch korutīnā:

launch {
    try {
        val result = someSuspendFunction()
        println(result)
    } catch (e: Exception) {
        println("Kļūda: ${e.message}")
    }
}

Ja korutīna tiek palaista ar launch, neapstrādātās izņēmumi tiek nodoti CoroutineExceptionHandler:

val handler = CoroutineExceptionHandler { _, exception ->
    println("Apstrādāta izņēmuma ziņa: ${exception.message}")
}

GlobalScope.launch(handler) {
    throw RuntimeException("Kļūda korutīnā")
}

Tādējādi, elastīgi pārvaldīt kļūdas asinhronajā kodā.