Kotlin:
Tratamento de erros
Como fazer:
Kotlin fornece try
, catch
, finally
, e throw
para gerenciar erros. Veja como usá-los:
fun main() {
val numerador = 10
val denominador = 0
try {
val resultado = numerador / denominador
println("Resultado: $resultado")
} catch (e: ArithmeticException) {
println("Não é possível dividir por zero, amigo.")
} finally {
println("Isso acontece independente do que ocorrer.")
}
}
Saída:
Não é possível dividir por zero, amigo.
Isso acontece independente do que ocorrer.
Se algo der errado no bloco try
, a execução salta para o catch
. Ele captura o erro específico lançado (ArithmeticException
neste caso). O bloco finally
é executado depois—não importa o resultado.
Mergulho Profundo
O bloco try-catch
existe desde os primeiros dias de programação—é como uma rede de segurança. Kotlin também oferece throw
para lançar manualmente uma exceção na arena, e há finally
para código que deve ser executado—trabalho de limpeza, frequentemente.
Alternativas incluem o tipo Result
e o try
de Kotlin como uma expressão.
val resultado: Result<Int> = try {
Result.success(numerador / denominador)
} catch (e: ArithmeticException) {
Result.failure(e)
}
Essa abordagem retorna um objeto Result
—você obtém um sucesso ou uma falha sem o drama de uma exceção não tratada.
A implementação em Kotlin é elegante porque você pode usar try
como uma expressão, o que significa que ele retorna um valor. Opções como essas tornam o tratamento de erros em Kotlin bastante versátil. É sobre escolher a ferramenta certa para o trabalho, assim como você faria em uma oficina.
Veja Também
- Documentação de Kotlin sobre Exceções: Tratamento de Exceção em Kotlin
- Documentação do tipo
Result
de Kotlin: Resultado Kotlin - Effective Java, 3ª Edição, de Joshua Bloch—ótimas percepções sobre exceções, apesar de ser específico para Java.