Junior — Middle
Como implementar o tratamento de exceções em corrotinas assíncronas?
sobes.tech IA
Resposta da IA
No Kotlin, para lidar com exceções em corrotinas, pode usar blocos try-catch dentro da própria corrotina ou aplicar construções especiais, como o CoroutineExceptionHandler.
Exemplo com try-catch dentro da corrotina:
launch {
try {
val result = someSuspendFunction()
println(result)
} catch (e: Exception) {
println("Erro: ${e.message}")
}
}
Se a corrotina for iniciada através do launch, exceções não tratadas são passadas para o CoroutineExceptionHandler:
val handler = CoroutineExceptionHandler { _, exception ->
println("Exceção tratada: ${exception.message}")
}
GlobalScope.launch(handler) {
throw RuntimeException("Erro na corrotina")
}
Dessa forma, é possível gerenciar erros de forma flexível no código assíncrono.