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: 42

En wanneer er een fout optreedt:

Oeps: Er is iets fout gegaan

Voor 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: