Junior
Kaip tvarkyti išimtis Kotlin?
sobes.tech AI
Atsakymas iš AI
Kotlin'e naudojami try, catch ir finally blokai išimčių tvarkymui.
fun divide(a: Int, b: Int): Int {
try {
// Galimai pavojingas kodas
return a / b
} catch (e: ArithmeticException) {
// Konkretios išimties apdorojimas
println("Klaida: dalijimas iš nulio!")
return 0
} catch (e: Exception) {
// Bendros išimtys
println("Įvyko nežinoma klaida: ${e.message}")
throw e // Jei reikia, išimtį galima pakartotinai išmesti
} finally {
// Kodas, kuris vykdomas visais atvejais
println("Išteklių valymas ar kitos užbaigimo veiksmai")
}
}
tryblokas apima kodą, kuris gali išmesti išimtį.catchblokas naudojamas išimčių pagavimui ir apdorojimui. Gali būti kelicatchblokai skirtingų tipų išimčių apdorojimui. Išimčių tipai gaunami jų deklaravimo tvarka.finallyblokas apima kodą, kuris visada vykdomas, nepriklausomai nuo to, ar išimtis buvo išmesta ar ne. Dažnai naudojamas išteklių atlaisvinimui.
Skirtingai nuo Java, Kotlin neturi privalomų "checked" išimčių. Visos išimtys Kotlin'e yra "unchecked".
Išimtis galima išmesti naudojant raktinį žodį throw:
fun validateAge(age: Int) {
if (age < 0) {
throw IllegalArgumentException("Amžius negali būti neigiamas")
}
// ...
}
Taip pat galima naudoti standartines bibliotekos išimtis arba kurti savo, paveldint iš Exception arba RuntimeException.