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 tips | Situācija |
|---|---|
| SyntaxError | Sintakses kļūda (piemēram, trūkst iekava) |
| ReferenceError | Atsauce uz neeksistējošu mainīgo |
| TypeError | Nepareizs datu tips (piemēram, izsaukt ne-funkciju) |
| RangeError | Vē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
- MDN Web Docs — JavaScript — visaptverošākā JavaScript dokumentācija
- JavaScript.info — detalizēta pamācība
- Can I Use — pārlūkprogrammu atbalsta pārbaude










