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
Oxirgi qator chiqmadi — xato butun kodni to’xtatdi.
try va catch
try ichidagi kod xato bersa, boshqaruv catch ga o’tadi va dastur
to’xtamaydi.
Xato obyekti
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 |
finally
Xato bo’ldimi yoki yo’q — bu blok doim bajariladi:
finally resurslarni tozalash uchun ishlatiladi: faylni yopish, yuklanish
belgisini o’chirish.
throw — o’z xatongizni yaratish
Amaliy misol: ishonchli o’girish
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:
nullqiymatga metod chaqirib, xatonitry/catchbilan ushlang;e.namevae.messageni chiqaring;JSON.parse("{buzuq}")ni sinab ko’ring;throw new Error()bilan o’z xatongizni yarating;finallyqo’shib, u qachon ishlashini tekshiring;- 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
namevamessagexossalari bor. throw new Error("...")— o’z xatongizni yaratish.- Bo’sh
catchxatoni yashiradi — kamida jurnalga yozing.
Keyingi darsda zamonaviy ES6 sintaksis — destructuring, spread va shablonlarni ko’ramiz.