⊗jsSpExcThr 145 of 294 menu

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.

csnldaptuzl