⊗jsSpExcThr 145 of 294 menu

Էքսեպշնների նետումը 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

Գրեք ձեր սեփական ֆունկցիան, որը կհանի արմատը թվից և այդ ընթացքում կնետի էքսեպշն, եթե արմատը հանվում է բացասական թվից:

kkroswuzlaz