JavaScript Xatolar bilan ishlash (Error Statements)
try bayonoti
JavaScript-da try bayonoti kod bajarilishi jarayonida yuzaga kelishi mumkin bo'lgan xatolarni (shuningdek istisnolar deb ataladi) butun dasturni to'xtatmasdan boshqarish uchun ishlatiladi.
try bayonoti catch bilan birga ishlaydi. Ba'zan finally bilan, ba'zan esa throw bilan ishlaydi.
Try bloki
try bloki xato tashlashi mumkin bo'lgan kodni o'z ichiga oladi. Agar xato bo'lmasa, catch bloki o'tkazib yuboriladi.
try {
// Xatoga sabab bo'lishi mumkin bo'lgan kod
} catch (error) {
// Xatoni boshqarish uchun kod
}Catch bloki
catch bloki faqat try blokida xato yuzaga kelganda bajariladi. Error obyekti nima noto'g'ri bo'lganligi haqida tafsilotlarni beradi.
try {
// Xatoga sabab bo'lishi mumkin bo'lgan kod
} catch (error) {
// Xatoni boshqarish uchun kod
}Finally bloki (ixtiyoriy)
finally bloki try va catch bloklaridan keyin, xato bo'lgan yoki bo'lmaganidan qat'i nazar bajariladi. U odatda tozalash vazifalari uchun ishlatiladi (masalan, fayllarni yopish, yuklagichlarni to'xtatish va h.k.):
try {
// Xatoga sabab bo'lishi mumkin bo'lgan kod
} catch (error) {
// Xatoni boshqarish uchun kod
} finally {
// Har doim bajariladigan kod
}JavaScript xatolarni tashlaydi
Xato yuzaga kelganda JavaScript odatda to'xtaydi va xato xabarini yaratadi. Buning texnik atamasi: JavaScript istisno tashlaydi (throw an error).
Eslatma
JavaScript aslida ikki xususiyatga ega Error obyektini yaratadi: name va message.
throw bayonoti
throw bayonoti maxsus xato yaratishga imkon beradi. Texnik jihatdan siz istisno tashlashingiz mumkin.
Istisno JavaScript String, Number, Boolean yoki Object bo'lishi mumkin:
throw "Juda katta"; // matn tashlash
throw 500; // raqam tashlashAgar throw ni try va catch bilan birga ishlatsangiz, dastur oqimini boshqarishingiz va maxsus xato xabarlarini yaratishingiz mumkin.
Kiritishni tekshirish misoli
Bu misol kiritishni tekshiradi. Agar qiymat noto'g'ri bo'lsa, istisno (err) tashlanadi. Istisno (err) catch bayonoti tomonidan ushlanadi va maxsus xato xabari ko'rsatiladi:
<!DOCTYPE html>
<html>
<body>
<p>Iltimos, 5 dan 10 gacha raqam kiriting:</p>
<input id="demo" type="text">
<button type="button" onclick="myFunction()">Kiritishni tekshirish</button>
<p id="p01"></p>
<script>
function myFunction() {
const message = document.getElementById("p01");
message.innerHTML = "";
let x = document.getElementById("demo").value;
try {
if(x.trim() == "") throw "bo'sh";
if(isNaN(x)) throw "raqam emas";
x = Number(x);
if(x < 5) throw "juda kichik";
if(x > 10) throw "juda katta";
} catch(err) {
message.innerHTML = "Kiritish " + err;
}
}
</script>
</body>
</html>HTML tekshirishi
Zamonaviy brauzerlar ko'pincha JavaScript va o'rnatilgan HTML tekshirishining kombinatsiyasini ishlatadi:
<input id="demo" type="number" min="5" max="10" step="1">Finally misoli
finally bayonoti try va catch dan keyin, natijadan qat'i nazar kodni bajarishga imkon beradi:
function myFunction() {
const message = document.getElementById("p01");
message.innerHTML = "";
let x = document.getElementById("demo").value;
try {
if(x.trim() == "") throw "bo'sh";
if(isNaN(x)) throw "raqam emas";
x = Number(x);
if(x > 10) throw "juda katta";
if(x < 5) throw "juda kichik";
} catch(err) {
message.innerHTML = "Xato: " + err + ".";
} finally {
document.getElementById("demo").value = "";
}
}