JavaScript:
Feilhåndtering
Hvordan gjøre:
Her er den klassiske try-catch
-blokken:
try {
// Kode som kan kaste en feil
let result = potentiallyRiskyOperation();
console.log('Suksess:', result);
} catch (error) {
// Hva gjøre hvis en feil blir kastet
console.error('Oisann:', error.message);
}
Eksempel på utskrift når ingen feil oppstår:
Suksess: 42
Og når det er en feil:
Oisann: Noe gikk galt
For asynkron kode, hvor promises er involvert, bruk try-catch
i en async
funksjon:
async function fetchData() {
try {
let data = await fetch('https://api.example.com/data');
console.log('Data hentet:', data);
} catch (error) {
console.error('Feil ved henting av data:', error.message);
}
}
fetchData();
Dypdykk
Feilhåndtering i JavaScript har utviklet seg. Tilbake i tiden (ES3, rundt 1999), hadde vi bare try-catch
-blokken. Ikke super fleksibel, men den gjorde jobben.
ES6 (2015) introduserte Promises og ga oss .then()
og .catch()
, som tillater oss å håndtere asynkrone feil mer nådig.
fetch('https://api.example.com/data')
.then(data => console.log('Data hentet:', data))
.catch(error => console.error('Feil ved henting av data:', error.message));
Når det gjelder implementasjonsdetaljer, når en feil blir kastet, skaper JavaScript-motorer et Error
-objekt med nyttige egenskaper som message
og stack
. Du kan også lage tilpassede feiltyper ved å utvide Error
-klassen – praktisk for mer komplekse apper.
Alternativer? Du kunne ignorere feilhåndtering (dårlig idé), bruke tilbakekall med feilførste parametere (hallo, Node.js-stil), eller bli mer sofistikert med biblioteker og rammeverk som tilbyr deres versjoner.
Se også
For mer om feilhåndtering:
- MDN om try-catch: MDN try…catch
- Async/Await: MDN async function
- En guide til Promises: MDN Promises
- Opprette og kaste tilpassede feil: MDN Error