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
trycontiene il codice che può generare un'eccezione. - Il blocco
catchviene utilizzato per intercettare e gestire le eccezioni. È possibile utilizzare più blocchicatchper diversi tipi di eccezioni. I tipi di eccezioni vengono catturati nell'ordine in cui sono dichiarati. - Il blocco
finallycontiene 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.