JavaScript xatolarni ushlash (try, catch)

Xato dasturni to’xtatadi: keyingi kod bajarilmaydi. Ammo ba’zi xatolarni oldindan aytib bo’lmaydi — fayl yo’q, tarmoq uzilgan, foydalanuvchi noto’g’ri ma’lumot kiritgan. Ularni ushlab olish kerak.

Xato dasturni to’xtatadi

JavaScript

Oxirgi qator chiqmadi — xato butun kodni to’xtatdi.

try va catch

JavaScript

try ichidagi kod xato bersa, boshqaruv catch ga o’tadi va dastur to’xtamaydi.

Xato obyekti

JavaScript

Ko’p uchraydigan xato turlari

Tur Qachon chiqadi
ReferenceError mavjud bo’lmagan o’zgaruvchiga murojaat
TypeError qiymat kutilgan turda emas (null.xossa)
SyntaxError sintaksis xatosi — kod umuman ishlamaydi
RangeError qiymat ruxsat etilgan oraliqdan tashqarida
JavaScript

finally

Xato bo’ldimi yoki yo’q — bu blok doim bajariladi:

JavaScript

finally resurslarni tozalash uchun ishlatiladi: faylni yopish, yuklanish belgisini o’chirish.

throw — o’z xatongizni yaratish

JavaScript

Amaliy misol: ishonchli o’girish

JavaScript

Sikl ichida try/catch bo’lgani uchun bitta xato butun siklni to’xtatmadi.

Hamma narsani o’rab qo’ymang

try/catch faqat kutilishi mumkin bo’lgan xatolar uchun: tarmoq so’rovi, JSON o’qish, foydalanuvchi kiritmasi. Dasturchi xatosini (noto’g’ri yozilgan o’zgaruvchi nomi) u yashirmasligi kerak — u tuzatilishi kerak.

Amaliy mashq

Xatolarni boshqaring:

  1. null qiymatga metod chaqirib, xatoni try/catch bilan ushlang;
  2. e.name va e.message ni chiqaring;
  3. JSON.parse("{buzuq}") ni sinab ko’ring;
  4. throw new Error() bilan o’z xatongizni yarating;
  5. finally qo’shib, u qachon ishlashini tekshiring;
  6. massiv ustidan yurib, xatoli elementlarni o’tkazib yuboring.

5-qadamda try ichiga return qo’ying — finally baribir ishladimi?

Qisqacha xulosa

  • Ushlanmagan xato dasturni to’xtatadi.
  • try — xavfli kod, catch — xato ushlanadi, finally — doim bajariladi.
  • Xato obyektida name va message xossalari bor.
  • throw new Error("...") — o’z xatongizni yaratish.
  • Bo’sh catch xatoni yashiradi — kamida jurnalga yozing.

Keyingi darsda zamonaviy ES6 sintaksis — destructuring, spread va shablonlarni ko’ramiz.

Bu dars foydali bo'ldimi?

marta ko'rildi