Sobes.tech
Junior — Middle

Comment gérer les exceptions dans les coroutines asynchrones?

sobes.tech IA

Réponse de l'IA

En Kotlin, pour gérer les exceptions dans les coroutines, vous pouvez utiliser des blocs try-catch à l’intérieur de la coroutine elle-même ou appliquer des constructions spéciales telles que CoroutineExceptionHandler.

Exemple avec try-catch à l’intérieur de la coroutine :

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

Si la coroutine est lancée via launch, les exceptions non gérées sont transmises à CoroutineExceptionHandler :

val handler = CoroutineExceptionHandler { _, exception ->
    println("Exception gérée : ${exception.message}")
}

GlobalScope.launch(handler) {
    throw RuntimeException("Erreur dans la coroutine")
}

Ainsi, il est possible de gérer de manière flexible les erreurs dans le code asynchrone.