⊗jsSpExcThr 145 of 294 menu

Истисно кардани истисноҳо дар JavaScript

Дар дарсҳои қаблӣ мо ду ҷоеро омӯхтем, ки 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-ро ба намоиш мегузорад

Функсияи худро нависед, ки решаи як ададро гирад ва дар ҳамон ҳол истисно партояд, агар реша аз адади манфӣ гирифта шавад.

Тоҷикӣ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Мо барои коркарди сомона, таҳлил ва шахсӣ кардан аз cookie истифода мебарем. Коркарди маълумот мувофиқи Сиёсати махфият сурат мегирад.
ҳамаро қабул кардан танзим кардан рад кардан