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.