⊗jsSpExcThr 145 of 294 menu

Erandite viskamine JavaScriptis

Eelmistes õppetundides uurisime kahte kohta, kus JavaScript viskab erandi mõne probleemi korral.

Teie projektis võib siiski esineda ka muid olukordi, mis on teie jaoks erandlikud, kuid mitte JavaScripti jaoks. Sellisel juhul saate luua ja visata oma, kohandatud erandeid.

Vaatame selleks vajalikku süntaksit. Kõigepealt tuleb erand luua käsuga new Error, edastades parameetrina erandi teksti:

new Error('erandi tekst');

Seejärel tuleb see erand visata käsuga throw:

throw new Error('erandi tekst');

Erandi viskamine sunnib JavaScripti pidama, et on tekkinud erandlik olukord. See tähendab, et sellist erandit saab püüda konstruktsiooniga try-catch ja seejärel vastavalt vajadusele töödelda.

Vaatame näite abil, kuidas seda kasutada. Olgu meil funktsioon, mis jagab ühe arvu teisega:

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

Eeldame, et nulliga jagamine on keelatud ja selle katse korral peaks tekkima erandlik olukord. Selleks kontrollime funktsioonis, kas esineb katse jagada 0-ga. Kui ei - jagame, kuid kui jah - viskame erandi:

function div(a, b) { if (b !== 0) { return a / b; } else { throw new Error('nulliga jagamise viga'); } }

Proovime kõigepealt lihtsalt jagada 0-ga, ilma erandit püüdmata:

alert( div(3, 0) );

Sel juhul skripti täitmine katkestatakse ja konsooli ilmub viga tekstiga 'nulliga jagamise viga' (kontrollige). Võtame nüüd oma vea kinni ja kuidagi sellega ümber:

try { alert( div(3, 0) ); } catch (error) { alert('te üritate jagada nulliga, mis on keelatud'); }

JavaScriptis negatiivsest arvust juure võtmise katse ei põhjusta erandi viskamist:

let result = Math.sqrt(-1); console.log(result); // väljastab NaN

Kirjutage oma funktsioon, mis võtab ruutjuure arvust ja viskab sel juhul erandi, kui juurt üritatakse võtta negatiivsest arvust.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu