JS xatolar va istisnolar

ULASHISH

Sinab ko‘rish operatori

JavaScript-da try iborasi kodni bajarish jarayonida yuzaga kelishi mumkin bo‘lgan xatolarni (istisnolar deb ham ataladi) boshqarish uchun ishlatiladi - butun dasturni to‘xtatmasdan.

try iborasi catch bilan birga ishlaydi.

Ba’zan u finally bilan ishlaydi.

Va ba’zida u throw bilan ishlaydi.


Sinab ko‘rish bloki

try blokida xatolik yuzaga kelishi mumkin bo‘lgan kod mavjud.

Hech qanday xatolik yuz bermasa, catch bloki o‘tkazib yuboriladi.

Sintaksis

try {
  // Code that may cause an error
} catch (error) {
  // Code to handle the error
}

Qo‘lga olish bloki

catch bloki try blokida xatolik yuzaga kelgan taqdirdagina bajariladi.

Xato obyekti nima noto‘g‘ri bo‘lganligi haqida batafsil ma’lumot beradi.

Sintaksis

try {
  // Code that may cause an error
} catch (error) {
  // Code to handle the error
}

Nihoyat blok (ixtiyoriy)

finally bloki sinash va tutib olish bloklaridan keyin bajariladi, xatolik yuz berdimi yoki yo‘qmi.

Odatda tozalash vazifalari uchun ishlatiladi (masalan, fayllarni yopish, yuklovchilarni to‘xtatish va boshqalar).

Sintaksis

try {
  // Code that may cause an error
} catch (error) {
  // Code to handle the error
} finally {
  // Code that always runs, no matter what
}

JavaScript otish xatolari

Xato sodir bo‘lganda, JavaScript odatda to‘xtaydi va xato xabarini yaratadi.

Buning texnik atamasi: JavaScript istisno (xato) chiqaradi.

JavaScript aslida ikkita xususiyatga ega Xato obyektini yaratadi: nom va xabar.


Otish operatori

throw operatori sizga maxsus xato yaratish imkonini beradi.

Texnik jihatdan siz istisno qilishingiz mumkin (xato yuborish).

Istisno JavaScript String , Number , Boolean yoki Object bo‘lishi mumkin:

throw "Too big";    // throw a text
throw 500;          // throw a number

Agar try and catch bilan birga throw dan foydalansangiz, dastur oqimini boshqarishingiz va maxsus xato xabarlarini yaratishingiz mumkin.


Kirishni tekshirish misoli

Ushbu misol kirishni tekshiradi. Qiymat noto‘g‘ri bo‘lsa, istisno (xato) tashlanadi.

Istisno (xato) catch operatori tomonidan ushlanadi va maxsus xato xabari ko‘rsatiladi:

<!DOCTYPE html>
<html>
<body>

<p>Please input a number between 5 and 10:</p>

<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</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 "empty";
    if(isNaN(x)) throw "not a number";
    x = Number(x);
    if(x < 5) throw "too low";
    if(x > 10) throw "too high";
  } catch(err) {
    message.innerHTML = "Input is " + err;
  }
}
</script>

</body>
</html>
O‘zingiz sinab ko‘ring »


HTMLni tekshirish

Yuqoridagi kod faqat bir misol.

Zamonaviy brauzerlar ko‘pincha HTML atributlarida belgilangan oldindan belgilangan tekshirish qoidalaridan foydalangan holda JavaScript va o‘rnatilgan HTML tekshiruvi kombinatsiyasidan foydalanadilar:

<input id="demo" type="number" min="5" max="10" step="1">

Shakllarni tekshirish haqida ko‘proq ma’lumotni ushbu qo‘llanmaning keyingi bobida o‘qishingiz mumkin.


Nihoyat, misol

finally iborasi sinashdan keyin kodni bajarishga imkon beradi natijadan qat’iy nazar tuting:

Sintaksis

try {
  Block of code to try
} catch(err) {
  Block of code to handle errors
} finally {
  Block of code to be executed regardless of the try / catch result
}

Misol

function myFunction() {
  const message = document.getElementById("p01");
  message.innerHTML = "";
  let x = document.getElementById("demo").value;
  try {
    if(x.trim() == "") throw "is empty";
    if(isNaN(x)) throw "is not a number";
    x = Number(x);
    if(x > 10) throw "is too high";
    if(x < 5) throw "is too low";
  } catch(err) {
    message.innerHTML = "Error: " + err + ".";
  } finally {
    document.getElementById("demo").value = "";
  }
}
O‘zingiz sinab ko‘ring »


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!