Junior
Kotlin'da istisnolarni qanday boshqarish mumkin?
sobes.tech AI
AIdan javob
Kotlin'da istisnolarni boshqarish uchun try, catch va finally bloklari ishlatiladi.
fun divide(a: Int, b: Int): Int {
try {
// Potensial xavfli kod
return a / b
} catch (e: ArithmeticException) {
// Maxsus istisnani boshqarish
println("Xato: nolga bo'lish!")
return 0
} catch (e: Exception) {
// Umumiy istisnalarni boshqarish
println("Noma'lum xato yuz berdi: ${e.message}")
throw e // Zarur bo'lsa, istisnani qayta yuborish
} finally {
// Har doim bajariladigan kod (istisno bo'lsa ham, bo'lmasa ham)
println("Resurslarni tozalash yoki boshqa yakuniy harakatlar")
}
}
tryblokida istisno chiqarishi mumkin bo'lgan kod joylashgan.catchbloki istisnalarni ushlash va boshqarish uchun ishlatiladi. Bir nechtacatchbloklari turli xil istisno turlarini boshqarish uchun ishlatilishi mumkin. Istisno turlari e'lon qilish tartibida ushlanadi.finallybloki har doim bajariladigan kodni o'z ichiga oladi, istisno chiqarilgan yoki chiqarilmagan bo'lsa ham. Bu blok ko'pincha resurslarni bo'shatish uchun ishlatiladi.
Java bilan solishtirganda, Kotlinda majburiy "checked" istisnolar mavjud emas. Kotlin'da barcha istisnolar "unchecked".
Istisnolarni chiqarish uchun throw kalit so'zidan foydalaniladi:
fun validateAge(age: Int) {
if (age < 0) {
throw IllegalArgumentException("Yosh manfiy bo'lishi mumkin emas")
}
// ...
}
Shuningdek, standart kutubxonadagi istisno sinflaridan foydalanish yoki Exception yoki RuntimeException dan meros olgan o'z sinflaringizni yaratish mumkin.