Darsliklar Kotlin try va catch

Kotlin Kotlin try va catch

try va catch — xatolarni ushlab, dasturning to’xtab qolishining oldini oladigan mexanizm. Har qanday dastur xato bilan uchrashadi: foydalanuvchi noto’g’ri ma’lumot kiritadi, fayl topilmaydi, nolga bo’lish sodir bo’ladi. Yaxshi dastur bunda “qulab tushmaydi”, balki xatoni ushlab, oqilona javob beradi. Bu — Kotlin qo’llanmasining yakuniy mavzusi.

try-catchtry blokiga xavfli kod, catch blokiga esa xato yuz berganda bajariladigan kod yoziladigan konstruksiya. U istisnoni ushlab, dasturni davom ettiradi.

try va catch tuzilishi

try blokiga xavfli kodni, catch blokiga esa javob kodini yozamiz:

fun main() {
    try {
        val natija = 10 / 0
        println(natija)
    } catch (e: ArithmeticException) {
        println("Xato: nolga bo'lish mumkin emas")
    }
    println("Dastur davom etmoqda")
}
Xato: nolga bo'lish mumkin emas
Dastur davom etmoqda

Mana farqi: dastur qulamadi, xatoni ushlab, tushunarli xabar berdi va oxirgi qatorgacha ishlashda davom etdi. catch (e: ArithmeticException) — aniq xato turini ushladi.

Xato ma’lumotini olish

Ushlab olingan istisno obyekti xato haqida ma’lumot beradi. message xususiyati sababni qaytaradi:

fun main() {
    try {
        val son = "salom".toInt()   // xato
        println(son)
    } catch (e: NumberFormatException) {
        println("Xato yuz berdi: ${e.message}")
    }
}
Xato yuz berdi: For input string: "salom"

"salom" ni songa aylantirib bo’lmagani uchun NumberFormatException yuz berdi. e.message esa aniq sababni ko’rsatdi.

try — ifoda sifatida

Kotlin’ning o’ziga xosligi: try ham qiymat qaytaradi. Uni to’g’ridan-to’g’ri o’zgaruvchiga berish mumkin:

fun main() {
    val son = try {
        "42".toInt()
    } catch (e: Exception) {
        0   // xato bo'lsa 0
    }
    println(son)
}
42

val son = try { ... } catch { ... }try natijasini to’g’ridan-to’g’ri o’zgaruvchiga berdi. Bu Kotlin’ning ixcham va nafis xususiyati.

finally bloki

finally bloki xatodan qat’i nazar (bo’ladimi-yo’qmi) doim bajariladi:

Blok Qachon bajariladi
try doim (xavfli kod)
catch faqat xato yuz berganda
finally har doim

finally fayl yopish kabi “tozalash” ishlarini kafolatlaydi.

Xulosa

Bu bo’limda try-catch bilan xatoni ushlash, message bilan sababni olish, try ning ifoda sifatida qiymat qaytarishi va finally blokini ko’rib chiqdik. Xatolarni to’g’ri boshqarish — professional dasturchining belgisi.