Junior
Como lidar com exceções em Kotlin?
sobes.tech IA
Resposta da IA
Em Kotlin, os blocos try, catch e finally são usados para lidar com exceções.
fun divide(a: Int, b: Int): Int {
try {
// Código potencialmente perigoso
return a / b
} catch (e: ArithmeticException) {
// Tratamento de exceções específicas
println("Erro: divisão por zero!")
return 0
} catch (e: Exception) {
// Tratamento de exceções gerais
println("Ocorreu um erro desconhecido: ${e.message}")
throw e // Re-lançar a exceção se necessário
} finally {
// Código que é executado em qualquer caso (independentemente da exceção)
println("Limpeza de recursos ou outras ações finais")
}
}
- O bloco
trycontém o código que pode lançar uma exceção. - O bloco
catché usado para capturar e tratar exceções. Pode-se usar vários blocoscatchpara diferentes tipos de exceções. Os tipos de exceções são capturados na ordem em que são declarados. - O bloco
finallycontém código que sempre é executado, independentemente de uma exceção ter sido lançada ou não. Este bloco é frequentemente usado para liberar recursos.
Ao contrário do Java, Kotlin não possui exceções obrigatórias de tratamento ("checked"). Todas as exceções em Kotlin são "unchecked".
Para lançar exceções, usa-se a palavra-chave throw:
fun validateAge(age: Int) {
if (age < 0) {
throw IllegalArgumentException("A idade não pode ser negativa")
}
// ...
}
Também é possível usar classes de exceções padrão da biblioteca ou criar próprias, herdando de Exception ou RuntimeException.