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.