Sobes.tech
Junior

Kotlin-də istisnaları necə idarə etmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Kotlin-də istisnaları idarə etmək üçün try, catchfinally bloklarından istifadə olunur.

fun divide(a: Int, b: Int): Int {
    try {
        // Potensial təhlükəli kod
        return a / b
    } catch (e: ArithmeticException) {
        // Xüsusi istisnanın işlənməsi
        println("Xəta: sıfıra bölmə!")
        return 0
    } catch (e: Exception) {
        // Ümumi istisnaların işlənməsi
        println("Naməlum xəta baş verdi: ${e.message}")
        throw e // Lazım olsa, istisnanı yenidən atmaq
    } finally {
        // Hər halda icra olunan kod (istisna olsa da, olmasa da)
        println("Resursların təmizlənməsi və ya digər yekun tədbirlər")
    }
}
  • try bloku istisna yarada biləcək kodu ehtiva edir.
  • catch bloku istisnaları tutmaq və işləmək üçün istifadə olunur. Müxtəlif növ istisnalar üçün bir neçə catch bloku istifadə edilə bilər. İstisna növləri elan olunma ardıcıllığında tutulur.
  • finally bloku hər zaman icra olunan kodu ehtiva edir, istisna atılıb-atılmamasından asılı olmayaraq. Bu blok tez-tez resursların azad olunması üçün istifadə olunur.

Java ilə müqayisədə, Kotlin-də "checked" istisnalar məcburi deyil. Bütün istisnalar "unchecked"-dir.

İstisnaları atmaq üçün throw açar sözü istifadə olunur:

fun validateAge(age: Int) {
    if (age < 0) {
        throw IllegalArgumentException("Yaş mənfi ola bilməz")
    }
    // ...
}

Həmçinin, standart kitabxanadan olan istisna sinflərindən istifadə etmək və ya öz sinflərinizi yaratmaq mümkündür, Exception və ya RuntimeException-dən irsən.