⊗jsSpExcThr 145 of 294 menu

Kļūdu izmešana JavaScript

Iepriekšējās nodarbībās mēs pētījām divas vietas, kurās JavaScript izmet izņēmumu dažādu problēmu gadījumā.

Tomēr jūsu projektā var būt citas situācijas, kas jums ir izņēmuma, bet JavaScript - nē. Šādā gadījumā mēs varam izveidot un izmest savas, lietotāja definētas kļūdas.

Analizēsim sintaksi, kas nepieciešama šim nolūkam. Vispirms kļūda jāizveido ar komandu new Error, kā parametru padodot kļūdas tekstu:

new Error('kļūdas teksts');

Tad šī kļūda jāizmet ar komandu throw:

throw new Error('kļūdas teksts');

Kļūdas izmešana liek JavaScript uzskatīt, ka ir radusies izņēmuma situācija. Tas nozīmē, ka šādu kļūdu var noķert ar konstrukciju try-catch un apstrādāt vajadzīgajā veidā.

Apskatīsim piemērā, kā to izmantot. Pieņemsim, ka mums ir funkcija, kas dala vienu skaitli ar citu:

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

Uzskatīsim, ka dalīšana ar nulli aizliegta un, mēģinot to izdarīt, jārada izņēmuma situācija. Šim nolūkam funkcijā pārbaudīsim, vai nav mēģinājuma dalīt ar 0. Ja nav - dalīsim, bet ja ir - izmetīsim kļūdu:

function div(a, b) { if (b !== 0) { return a / b; } else { throw new Error('kļūda dalot ar nulli'); } }

Vispirms vienkārši mēģināsim dalīt ar 0, neķerot kļūdu:

alert( div(3, 0) );

Šajā gadījumā skripta izpilde tiks pārtraukta un konsolē parādīsies kļūda ar tekstu 'kļūda dalot ar nulli' (pārbaudiet). Tagad noķersim mūsu kļūdu un kaut kā to apstrādāsim:

try { alert( div(3, 0) ); } catch (error) { alert('jūs mēģināt dalīt ar 0, kas ir aizliegts'); }

JavaScript mēģinājums iegūt kvadrātsakni no negatīva skaitļa nerada kļūdas izmešanu:

let result = Math.sqrt(-1); console.log(result); // izvadīs NaN

Uzrakstiet savu funkciju, kas iegūs kvadrātsakni no skaitļa un tajā pašā laikā izmetīs kļūdu, ja tiek mēģināts iegūt sakni no negatīva skaitļa.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt