Kivételek eldobása a JavaScript-ben
Az előző leckékben megismertük két olyan helyzetet, amikor a JavaScript kivételt dob bizonyos problémák esetén.
A projektedben azonban előfordulhatnak olyan helyzetek, amelyek számodra kivételesek, de a JavaScript számára nem. Ilyen esetekben létrehozhatunk és eldobhatunk saját, egyéni kivételeket.
Nézzük meg ennek szükséges szintaxisát. Először is
létre kell hoznunk a kivételt a
new Error paranccsal, paraméterként
átadva a kivétel szövegét:
new Error('a kivétel szövege');
Ezután ezt a kivételt a
throw paranccsal kell eldobnunk:
throw new Error('a kivétel szövege');
A kivétel eldobása azt jelenti a JavaScript számára,
hogy kivételes helyzet állt elő.
Ez azt jelenti, hogy ez a kivétel elkapható
a try-catch szerkezettel és
a kívánt módon kezelhető.
Nézzünk egy példát ennek a használatára. Tegyük fel, hogy van egy függvényünk, amely eloszt egy számot egy másikkal:
function div(a, b) {
return a / b;
}
Tegyük fel, hogy a nullával való osztás
tilos, és ennek megkísérlésekor
kivételes helyzetnek kell előállnia. Ehhez
ellenőrizni fogjuk a függvényben, hogy nem 0-val
próbálunk-e osztani. Ha nem - elosztjuk,
ha igen - kivételt dobunk:
function div(a, b) {
if (b !== 0) {
return a / b;
} else {
throw new Error('nullával való osztás hibája');
}
}
Először egyszerűen próbáljunk meg elosztani
0-val, anélkül, hogy elkapnánk a kivételt:
alert( div(3, 0) );
Ebben az esetben a szkript végrehajtása megszakad
és a konzolon megjelenik a 'nullával való osztás hibája' szöveggel a hiba (ellenőrizd).
Most pedig kapjuk el a mi hibánkat és
kezeljük valahogy:
try {
alert( div(3, 0) );
} catch (error) {
alert('nullával próbálsz osztani, ami tilos');
}
A JavaScript-ben a negatív szám gyökvonásának megkísérlése nem vezet kivétel eldobásához:
let result = Math.sqrt(-1);
console.log(result); // NaN-t fog kiírni
Írj egy saját függvényt, amely egy számból von gyököt és közben kivételt dob, ha a gyököt negatív számból kívánjuk vonni.