⊗jsSpExcThr 145 of 294 menu

Išimčių metimas JavaScript

Ankstesnėse pamokose ištyrėme dvi vietas, kuriose JavaScript meta išimtį esant problemoms.

Tačiau jūsų projekte gali būti ir kitų situacijų, kurios jums yra išimtinės, o JavaScript - ne. Tokiu atveju mes galime kurti ir mesti savo, vartotojo išimtis.

Pažiūrėkime sintaksę, reikalingą tam. Pirmiausia išimtį reikia sukurti naudojant komandą new Error, parametru perduodant išimties tekstą:

new Error('išimties tekstas');

Tada šią išimtį reikia mesti naudojant komandą throw:

throw new Error('išimties tekstas');

Išimties metimas verčia JavaScript manyti, kad įvyko išimtinė situacija. Tai reiškia, kad tokią išimtį galima pagauti naudojant konstrukciją try-catch ir apdoroti reikiamu būdu.

Pažiūrėkime pavyzdyje, kaip tuo naudotis. Tarkime, turime funkciją, kuri dalina vieną skaičių iš kito:

function div(a, b) { return a / b; }

Laikykime, kad dalyba iš nulio yra draudžiama ir bandant tai padaryti turi kilti išimtinė situacija. Tam tikrinsime funkcijoje, ar nėra bandymo dalinti iš 0. Jei ne - dalinsime, o jei taip - mėsime išimtį:

function div(a, b) { if (b !== 0) { return a / b; } else { throw new Error('dalybos iš nulio klaida'); } }

Pirmiausia tiesiog pabandykime padalinti iš 0, neperimant išimties:

alert( div(3, 0) );

Tokiu atveju scenarijaus vykdymas nutrūks ir konsolėje pasirodys klaida su tekstu 'dalybos iš nulio klaida' (patikrinkite). Dabar perimsime mūsų klaidą ir kažkaip ją apdorosime:

try { alert( div(3, 0) ); } catch (error) { alert('bandote dalinti iš 0, kas yra draudžiama'); }

JavaScript bandymas ištraukti šaknį iš neigiamo skaičiaus nesukelia išimties metimo:

let result = Math.sqrt(-1); console.log(result); // išves NaN

Parašykite savo funkciją, kuri ištrauks šaknį iš skaičiaus ir tuo pačiu mės išimtį, jei šaknis traukiama iš neigiamo skaičiaus.

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