Sobes.tech
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 try conté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 blocos catch para diferentes tipos de exceções. Os tipos de exceções são capturados na ordem em que são declarados.
  • O bloco finally conté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.