Darsliklar Dart Istisnolar bilan ishlash

Dart Dart Istisnolar bilan ishlash

Istisnolar bilan ishlash — havaskor dasturchini professionaldan ajratib turadigan mavzu. 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. Dart’da bu try-catch orqali amalga oshiriladi.

Istisno (exception)dastur ijrosi vaqtida yuzaga keladigan g’ayrioddiy holat. Dart’da try, catch, finally va throw mexanizmi bunday holatni boshqaradi.

try va catch

try blokiga xavfli kodni, catch blokiga esa xato yuz berganda bajariladigan kodni yozamiz:

void main() {
  try {
    int natija = 10 ~/ 0;   // nolga bo'lish
    print(natija);
  } catch (e) {
    print("Xato ushlandi: $e");
  }
  print("Dastur davom etmoqda");
}
Xato ushlandi: IntegerDivisionByZeroException
Dastur davom etmoqda

Mana farqi: dastur qulamadi, xatoni ushlab, xabar berdi va oxirgi qatorgacha ishlashda davom etdi. catch (e)e da xato haqidagi ma’lumot bo’ladi.

Ma’lum istisno turini ushlash

on kalit so’zi bilan ma’lum turdagi istisnoni alohida ushlash mumkin:

void main() {
  try {
    var son = int.parse("salom");   // xato
    print(son);
  } on FormatException {
    print("Xato: bu son emas");
  }
}
Xato: bu son emas

on FormatException — aynan format xatosini ushladi. Turli xatolarni alohida ushlash aniqroq javob berish imkonini beradi.

finally bloki

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

void main() {
  try {
    print("Amal boshlandi");
    throw Exception("Sun'iy xato");
  } catch (e) {
    print("Xato ushlandi");
  } finally {
    print("Amal yakunlandi");
  }
}
Amal boshlandi
Xato ushlandi
Amal yakunlandi

finally xatodan qat’i nazar bajarildi — u fayl yopish kabi “tozalash” ishlarini kafolatlaydi. throw — o’zimiz xato “otish” uchun ishlatiladi.

try-catch-finally jadvali

Uch blokning vazifasini jamlaymiz:

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

Xulosa

Bu bo’limda try-catch bilan xatoni ushlash, on bilan ma’lum turni ushlash, finally bloki va throw bilan xato otishni ko’rib chiqdik. Istisnolarni boshqarish — barqaror dastur yozishning kalitidir. Keyingi darsda obyektga yo’naltirilgan dasturlash (OOP) ga o’tamiz.