Kļūdu apstrāde ir svarīga stabilas aplikācijas daļa. Ar try...catch var pārtvert kļūdas un reaģēt uz tām, nevis ļaut aplikācijai "salūzt".

try...catch

try {
// Kods, kas var izraisīt kļūdu
const dati = JSON.parse('nederīgs json');
} catch (kļūda) {
// Izpildās, ja notiek kļūda
console.error('Kļūda:', kļūda.message);
} finally {
// Izpildās vienmēr (neatkarīgi no kļūdas)
console.log('Beigas.');
}

Kļūdu tips

try {
neeksistējoša(); // ReferenceError
} catch (e) {
console.log(e.name); // 'ReferenceError'
console.log(e.message); // 'neeksistējoša is not defined'
console.log(e.stack); // pilna kļūdas izsekošana
}

Kļūdas izmešana (throw)

function dalīt(a, b) {
if (b === 0) {
throw new Error('Nevar dalīt ar nulli!');
}
return a / b;
}

try {
console.log(dalīt(10, 0));
} catch (e) {
console.error(e.message); // 'Nevar dalīt ar nulli!'
}

Asinhrono kļūdu apstrāde

async function ielādētDatus() {
try {
const response = await fetch('/api/dati');
if (!response.ok) {
throw new Error(`HTTP kļūda: ${response.status}`);
}
const dati = await response.json();
return dati;
} catch (kļūda) {
console.error('Neizdevās ielādēt:', kļūda.message);
return null;
}
}

Izplatītākās kļūdu klases

Kļūdas tipsSituācija
SyntaxErrorSintakses kļūda (piemēram, trūkst iekava)
ReferenceErrorAtsauce uz neeksistējošu mainīgo
TypeErrorNepareizs datu tips (piemēram, izsaukt ne-funkciju)
RangeErrorVērtība ārpus derīgā diapazona

Atkļūdošana ar DevTools

Pārlūkprogrammas DevTools (F12) piedāvā jaudīgus atkļūdošanas rīkus:

  • console.log() — izvadīt vērtības konsolē
  • console.error() — izvadīt kļūdu (sarkanā krāsā)
  • console.warn() — izvadīt brīdinājumu (dzeltenā)
  • console.table() — parādīt masīvu vai objektu kā tabulu
  • Breakpoints — Sources cilnē var iestatīt apturēšanas punktus kodā
  • Network cilne — redzēt visus tīkla pieprasījumus

Noderīgi resursi