Sobes.tech
Junior

Come gestire le eccezioni in Kotlin?

sobes.tech AI

Risposta dell'AI

In Kotlin, i blocchi try, catch e finally vengono utilizzati per gestire le eccezioni.

fun divide(a: Int, b: Int): Int {
    try {
        // Codice potenzialmente pericoloso
        return a / b
    } catch (e: ArithmeticException) {
        // Gestione di eccezioni specifiche
        println("Errore: divisione per zero!")
        return 0
    } catch (e: Exception) {
        // Gestione di eccezioni generali
        println("Si è verificato un errore sconosciuto: ${e.message}")
        throw e // Rilanciare l'eccezione se necessario
    } finally {
        // Codice che viene eseguito in ogni caso (indipendentemente dall'eccezione)
        println("Pulizia delle risorse o altre azioni finali")
    }
}
  • Il blocco try contiene il codice che può generare un'eccezione.
  • Il blocco catch viene utilizzato per intercettare e gestire le eccezioni. È possibile utilizzare più blocchi catch per diversi tipi di eccezioni. I tipi di eccezioni vengono catturati nell'ordine in cui sono dichiarati.
  • Il blocco finally contiene il codice che viene sempre eseguito, indipendentemente dal fatto che sia stata sollevata un'eccezione o meno. Questo blocco viene spesso utilizzato per liberare risorse.

A differenza di Java, Kotlin non ha eccezioni "checked" obbligatorie da gestire. Tutte le eccezioni in Kotlin sono "unchecked".

Per lanciare eccezioni, si utilizza la parola chiave throw:

fun validateAge(age: Int) {
    if (age < 0) {
        throw IllegalArgumentException("L'età non può essere negativa")
    }
    // ...
}

È anche possibile utilizzare le classi di eccezioni standard della libreria o crearne di proprie, ereditando da Exception o RuntimeException.