JavaScript:
Fouten afhandelen
Hoe:
Hier is het klassieke try-catch blok:
try {
// Code die een fout kan veroorzaken
let resultaat = potentieelRisicovolleOperatie();
console.log('Succes:', resultaat);
} catch (fout) {
// Wat te doen als een fout optreedt
console.error('Oeps:', fout.message);
}Voorbeelduitvoer wanneer er geen fout optreedt:
Succes: 42En wanneer er een fout optreedt:
Oeps: Er is iets fout gegaanVoor asynchrone code, waar promises bij betrokken zijn, gebruik try-catch in een async functie:
async function fetchData() {
try {
let data = await fetch('https://api.example.com/data');
console.log('Data opgehaald:', data);
} catch (fout) {
console.error('Fout bij het ophalen van gegevens:', fout.message);
}
}
fetchData();Diepere Duik
Foutafhandeling in JavaScript is geëvolueerd. Terug in de dag (ES3, circa 1999), hadden we alleen het try-catch blok. Niet super flexibel, maar het deed het werk.
ES6 (2015) introduceerde Promises en gaf ons .then() en .catch(), waardoor we asynchrone fouten eleganter konden afhandelen.
fetch('https://api.example.com/data')
.then(data => console.log('Data opgehaald:', data))
.catch(fout => console.error('Fout bij het ophalen van gegevens:', fout.message));Wat betreft implementatiedetails, wanneer een fout wordt veroorzaakt, creëren JavaScript-engines een Error object met nuttige eigenschappen zoals message en stack. Je kunt ook aangepaste fouttypes maken door de Error klasse uit te breiden – handig voor complexere apps.
Alternatieven? Je zou foutafhandeling kunnen negeren (slecht idee), callbacks gebruiken met fout-eerste parameters (hallo, Node.js stijl), of het mooier maken met bibliotheken en frameworks die hun eigen interpretaties bieden.
Zie Ook
Voor meer over foutafhandeling:
- MDN over try-catch: MDN try…catch
- Async/Await: MDN async function
- Een gids voor Promises: MDN Promises
- Het aanmaken en gooien van aangepaste fouten: MDN Fout