Sobes.tech
Junior — Middle

¿Cómo implementar el manejo de excepciones en corutinas asíncronas?

sobes.tech AI

Respuesta de la IA

En Kotlin, para manejar excepciones en corutinas, puedes usar bloques try-catch dentro de la misma corutina o aplicar construcciones especiales, como CoroutineExceptionHandler.

Ejemplo con try-catch dentro de la corutina:

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

Si la corutina se inicia mediante launch, las excepciones no manejadas se transmiten a CoroutineExceptionHandler:

val handler = CoroutineExceptionHandler { _, exception ->
    println("Excepción manejada: ${exception.message}")
}

GlobalScope.launch(handler) {
    throw RuntimeException("Error en la corutina")
}

De esta forma, se puede gestionar de manera flexible los errores en código asíncrono.