Skip to content

JavaScript Xatolar (Errors) ​

Xatolar bo'ladi! ​

JavaScript kodini bajarishda turli xatolar yuzaga kelishi mumkin: dasturchi tomonidan kodlash xatolari, noto'g'ri kiritish va boshqa kutilmagan holatlar:

  • Reference Errors (Havola xatolari)
  • Type Errors (Tur xatolari)
  • Range Errors (Diapazon xatolari)
  • URI Errors (URI xatolari)
  • Syntax Errors (Sintaksis xatolari)
  • Eval Error (eskirgan)
  • Silent Errors (Yashirin xatolar — keyingi bob)

JavaScript xatolarini qanday boshqarish ​

try bayonoti xatolar uchun tekshiriladigan kod blokini belgilashga imkon beradi.

catch bayonoti try blokida xato yuzaga kelsa bajariladigan kod blokini belgilashga imkon beradi.

try va catch bayonotlari juft bo'lib keladi:

js
try {
  // Sinab ko'riladigan kod bloki
} catch(err) {
  // Xatolarni boshqarish uchun kod bloki
}

Reference Errors (Havola xatolari) ​

ReferenceError mavjud bo'lmagan o'zgaruvchini ishlatganda yuzaga keladi.

Xato turiMisolXato xabari
ReferenceErrorfname = foo;foo is not defined
ReferenceErrorlet x = y; let y = 5;Cannot access y before initialization
js
let x = 5;

try {
  x = y + 1;
} catch(err) {
  let text = err.name;
}

Initsializatsiyadan oldin o'zgaruvchiga kirish mumkin emas:

js
try {
  let x = y;
  let y = 5;
} catch(err) {
  let text = err.name;
}

JavaScript Type Errors (Tur xatolari) ​

Type Error qiymat noto'g'ri turda bo'lganda yoki amal shu turda yaroqsiz bo'lganda yuzaga keladi.

XatoMisolXato xabari
TypeErrorAnna(5);Anna is not a function
TypeErrorlet num = 1; num.toUpperCase();num.toUpperCase is not a function
js
try {
  Anna(5);
} catch(err) {
  let text = err.name;
}

Raqamni katta harfga aylantirish mumkin emas:

js
let num = 1;
try {
  num.toUpperCase();
} catch(err) {
  let text = err.name;
}

JavaScript Range Errors (Diapazon xatolari) ​

RangeError qiymat yaroqli diapazoni tashqarisida bo'lganda yuzaga keladi.

Xato turiMisolXato xabari
RangeErrornew Array(-1);Invalid array length
RangeErrornum.toPrecision(500);toPrecision() argument must be between 1 and 100
js
try {
  new Array(-1);
} catch(err) {
  let text = err.name;
}
js
let num = 1;

try {
  num.toPrecision(500);   // Raqamda 500 ta muhim raqam bo'lishi mumkin emas
} catch(err) {
  let text = err.name;
}

JavaScript URI Errors ​

(Uniform Resource Identifier xatolari)

URIError URI funksiyasida noqonuniy belgilar ishlatganda yuzaga keladi:

Xato turiMisolXato xabari
URIErrordecodeURI("%%%");URI malformed
js
try {
  decodeURI("%%%");   // Foiz belgilarini URI dekodlash mumkin emas
} catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

JavaScript Syntax Errors (Sintaksis xatolari) ​

Syntax Error kod JavaScript sintaksisi qoidalarini buzganda yuzaga keladi.

XatoMisolXato
SyntaxErrorfname = "John);Invalid or unexpected token )
SyntaxErrorMath.round(4.6;Missing ) after argument list
js
// Bu qatorni JavaScript tahlil qila olmaydi
let fName = "John);

// Bajarish bu yerda to'xtaydi

Yuqoridagi bayonot: Invalid or unexpected token xatosini yaratadi. Dastur bajarilishi to'xtaydi!

Sintaksis xatolari ushlash mumkin emas

  • Sintaksis xatolari try...catch bilan ushlash mumkin emas
  • Sintaksis xatolar bajarish vaqtidan oldin sodir bo'ladi

JavaScript Eval Error ​

EvalError eval() funksiyasidagi xatoni ko'rsatadi.

Eskirgan

JavaScript-ning yangi versiyalari EvalError tashlmaydi. Uning o'rniga SyntaxError ishlating.