Hi everyone! I'm the author of code.mu :)
I'd love to chat with my non-Russian audience. I'm looking for your feedback on the site and the translation quality. Let's chat:)
⊗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