⊗jsSpExcThr 145 of 294 menu

Metanje izjem v JavaScript

V prejšnjih lekcijah smo preučili dve mesti, kjer JavaScript vrže izjemo v primeru kakršnih koli težav.

V vašem projektu pa so lahko tudi druge situacije, ki so za vas izjemne, za JavaScript pa ne. V tem primeru lahko ustvarite in metete svoje, uporabniško določene izjeme.

Oglejmo si sintakso, potrebno za to. Najprej je treba izjemo ustvariti z ukazom new Error, kot parameter pa podati besedilo izjeme:

new Error('besedilo izjeme');

Nato to izjemo je treba vreči z ukazom throw:

throw new Error('besedilo izjeme');

Metenje izjeme prisili JavaScript, da meni, da je prišlo do izjemne situacije. To pomeni, da je takšno izjemo mogoče ujeti z konstrukcijo try-catch in obravnavati na želeni način.

Oglejmo si na primeru, kako to uporabiti. Recimo, da imamo funkcijo, ki deli eno število z drugim:

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

Menimo, da je deljenje z nič prepovedano in ob poskusu tega naj bi prišlo do izjemne situacije. Za to bomo preverjali v funkciji, ali ni poskusa deljenja z 0. Če ni - bomo delili, če pa je - bomo metli izjemo:

function div(a, b) { if (b !== 0) { return a / b; } else { throw new Error('napaka pri deljenju z nič'); } }

Za začetek preprosto poskusimo deliti z 0, ne da bi ujeli izjemo:

alert( div(3, 0) );

V tem primeru se bo izvajanje skripta prekinilo in v konzoli se bo pojavila napaka z besedilom 'napaka pri deljenju z nič' (preverite). Zdaj pa ujemimo našo napako in jo na nek način obravnavajmo:

try { alert( div(3, 0) ); } catch (error) { alert('poskušate deliti z 0, kar je prepovedano'); }

V JavaScript poskus pridobivanja korena iz negativnega števila ne povzroči metanja izjeme:

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

Napišite svojo funkcijo, ki bo pridobivala koren iz števila in pri tem metala izjemo, če se koren pridobiva iz negativnega števila.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni