Error haqida
Error - bu xatolarni, muammolarni va alohida holatlarni ko'rsatadigan built-in Javascript classdir.
Biz o'zimizning 'error'larinimizni yaratishimiz mumkin qachonki biror noto'gri narsa yuzaga kelsa paydo bo'ladigan: bunda throw kalit so'zidan foydalanamiz
function divide(a, b) {
if (b === 0) {
throw new Error("0 ga bo'lish mumkin emas");
}
return a / b;
}
try {
divide(10, 0);
} catch (e) {
console.error("Xatolik yuzaga keldi:", e.message);
}
💡 Qisqacha:
- Error bu kodingizdagi muammolarni ifodalovchi sinfdir .
- JavaScript xatolarni avtomatik ravishda yuborishi mumkin yoki siz ularni qo'lda tashlashingiz mumkin.
- Ilovangiz ishdan chiqmasligi uchun xatolarni har doim ehtiyotkorlik bilan hal qiling.
Quyidagi kodimizga string emas boshqa qiymat bersak xatolik yuzaga keladi va undan keyin keladigan kodlarimiz ishlashdan to'xtaydi.
Kodni fullName'miga null qiymat beramiz:
const person = {
firstName: "Alisher",
lastName: 'Navoiy',
get fullName () {
return this.firstName + ' ' + this.lastName
},
set fullName(value) {
let fullNameArray = value.split(' ');
this.firstName = fullNameArray[0];
this.lastName = fullNameArray[1];
}
}
person.fullName = null;
//Kodni setter qismi o'zgartiramiz
const person = {
firstName: "Alisher",
lastName: 'Navoiy',
get fullName() {
return this.firstName + ' ' + this.lastName
},
set fullName(value) {
if (typeof value !== 'string')
throw new Error("Value string emas");
let fullNameArray = value.split(' ');
this.firstName = fullNameArray[0];
this.lastName = fullNameArray[1];
}
}
person.fullName = null;
Endi qachonki dasturni ishlashi throw ga kelganda dasturni keyingi qismi bajarilmaydi.
Ya'ni dasturni ishlashi throw ga yetganda bu yerdan chiqib ketib yuqoriga yetib boradi.
Biz throwni fullName ning setter'i ichida ichida qilyapmiz. Shuning uchun fullName'ga qiymat berayotganimizda bu xatoni ilib olishi uchun try ... catch dan foydalanamiz:
try {
person.fullName = "Davron Azimov";
}
catch (e) {
console.log(e.message);
}
catch dan keyin ilib olingan xatoni ifodalovchi o'zgaruvchini e'lon qilishimiz kerak:
bu odatda "e", "ex" yoki boshqa har qanday so'z bo'lishi mumkin. Bizning holatda esa "e" bo'ldi. Ana endi xatolik yuzaga kelsa try ... catch xatoni ilib oladi va keyin kelgan kodlar bemalol ishlashi mumkin bo'ladi.
Ya'ni try dan keyingi scope ichida xato yuzaga kelsa u try yordamida tutib olinadi va dasturni davom etishi catch ichida davom etadi. Ilib olingan xato ichida ma'lumot mana shu e o'zgaruvchisida bo'ladi.
Dasturni yanada optimallashtirdik:
const person = {
firstName: "Alisher",
lastName: 'Navoiy',
get fullName() {
return this.firstName + ' ' + this.lastName
},
set fullName(value) {
if (typeof value !== "string")
throw new Error("Value string emas");
let fullNameArray = value.split(' ');
if (fullNameArray.length !== 2)
throw new Error("Ism va sharifingizni to'liq kiriting!!!")
this.firstName = fullNameArray[0];
this.lastName = fullNameArray[1];
}
}
try {
person.fullName = true;
}
catch (e) {
console.error('Xatolikni kutib oling: ', e.message);
}