Sobes.tech
Junior — Middle

Como é que a manipulação de erros em Java e Kotlin difere, e como são implementadas as exceções em cada uma das linguagens?

sobes.tech IA

Resposta da IA

Em Java e Kotlin, o tratamento de erros baseia-se em exceções, mas há diferenças importantes:

  • Java distingue entre exceções checked (verificadas) e unchecked (não verificadas). As exceções checked devem ser tratadas (try-catch) ou declaradas na assinatura do método (throws). Isto obriga o programador a lidar explicitamente com erros possíveis.

  • Kotlin não possui exceções checked. Todas as exceções são consideradas unchecked, e o compilador não exige sua declaração ou tratamento explícito. Isto simplifica o código, mas requer atenção ao trabalhar com erros.

Implementação de exceções:

  • Em Java, as exceções herdam de Throwable, geralmente de Exception ou RuntimeException.

  • Em Kotlin, as exceções também herdam de Throwable. É possível criar classes de exceções personalizadas, como em Java.

Exemplo de tratamento de exceção em Java:

try {
    // código que pode lançar uma exceção
} catch (IOException e) {
    // tratamento
}

Em Kotlin:

try {
    // código
} catch (e: IOException) {
    // tratamento
}

Mas em Kotlin, não é necessário declarar throws na assinatura da função.