Sobes.tech
Junior — Middle

Cum se implementează gestionarea excepțiilor în corutinele asincrone?

sobes.tech AI

Răspuns de la AI

În Kotlin, pentru gestionarea excepțiilor în corutine, poți folosi blocuri try-catch în interiorul corutinei sau construcții speciale precum CoroutineExceptionHandler.

Exemplu cu try-catch în interiorul corutinei:

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

Dacă corutina este lansată prin launch, excepțiile neprocesate sunt transmise către CoroutineExceptionHandler:

val handler = CoroutineExceptionHandler { _, exception ->
    println("Excepție gestionată: ${exception.message}")
}

GlobalScope.launch(handler) {
    throw RuntimeException("Eroare în corutină")
}

Astfel, poți gestiona erorile în mod flexibil în codul asincron.