Էքսեպշնների նետումը JavaScript-ում
Նախորդ դասերում մենք ուսումնասիրեցինք երկու tեղեք, որտեղ JavaScript-ը նետում է էքսեպշն, երբ ինչ-որ խնդիրներ են առաջանում:
Սակայն, ձեր նախագծում կարող են լինել այլ իրավիճակներ, որոնք ձեզ համար բացառիկ են, բայց JavaScript-ի համար՝ ոչ: Այդպիսի դեպքում մենք կարող ենք ստեղծել և նետել մեր սեփական, օգտագործողի էքսեպշնները:
Եկեք ուսումնասիրենք դրա համար անհրաժեշտ
սինտաքսը: Սկզբում էքսեպշնը պետք է ստեղծել
new Error հրամանի միջոցով՝ պարամետրով
անցկացնելով էքսեպշնի տեքստը:
new Error('էքսեպշնի տեքստը');
Այնուհետև այս էքսեպշնը պետք է նետել
throw հրամանի միջոցով:
throw new Error('էքսեպշնի տեքստը');
Էքսեպշնի նետումը ստիպում է JavaScript-ին
համարել, որ տեղի է ունեցել բացառիկ իրավիճակ:
Սա նշանակում է, որ նման էքսեպշնը կարելի է բռնել
try-catch կոնստրուկցիայի միջոցով և
մշակել անհրաժեշտ կերպով:
Եկեք օրինակով տեսնենք, թե ինչպես օգտագործել սա: Ենթադրենք, մենք ունենք ֆունկցիա, որը բաժանում է մի թիվը մյուսի:
function div(a, b) {
return a / b;
}
Եկեք համարենք, որ զրոյի բաժանումը
արգելված է, և դա փորձելիս պետք է
առաջանա բացառիկ իրավիճակ: Դրա համար
ֆունկցիայում կստուգենք, արդյոք չկա
0-ի բաժանելու փորձ: Եթե ոչ - կբաժանենք,
իսկ եթե այո - կնետենք էքսեպշն:
function div(a, b) {
if (b !== 0) {
return a / b;
} else {
throw new Error('զրոյի վրա բաժանման սխալ');
}
}
Եկեք սկզբից պարզապես փորձենք բաժանել
0-ի, չբռնելով էքսեպշնը:
alert( div(3, 0) );
Այս դեպքում սկրիպտի կատարումը կդադարեցվի,
և կոնսոլում կհայտնվի սխալ 'զրոյի վրա բաժանման սխալ'
տեքստով (ստուգեք): Եկեք
այժմ բռնենք մեր սխալը և
ինչ-որ կերպ մշակենք այն:
try {
alert( div(3, 0) );
} catch (error) {
alert('դուք փորձում եք բաժանել 0-ի, ինչը արգելված է');
}
JavaScript-ում բացասական թվից արմատ հանելու փորձը չի հանգեցնում էքսեպշնի նետմանը:
let result = Math.sqrt(-1);
console.log(result); // կարտածի NaN
Գրեք ձեր սեփական ֆունկցիան, որը կհանի արմատը թվից և այդ ընթացքում կնետի էքսեպշն, եթե արմատը հանվում է բացասական թվից: