Doel: fouten begrijpen, lezen, oplossen en zelf duidelijke fouten maken.
Voor wie: je kent al wat JavaScript en kunt Node-scripts runnen met argumenten.
Tip: lees altijd eerst de eerste 3 regels van de stacktrace.
/pad/naar/app.js:1
console.log("Hallo);
^^^^^
SyntaxError: Invalid or unexpected token
at Object.compileFunction (node:vm:360:18)
...
app.js:1SyntaxErrorPro-tip: begin bij de bovenste fout; rest kan gevolgschade zijn.
| Type | Wanneer | Voorbeeld |
|---|---|---|
| SyntaxError | Code kan niet geparsed worden | console.log("Hallo) |
| ReferenceError | Variabele bestaat niet | console.log(naam) |
| Type | Wanneer | Voorbeeld |
|---|---|---|
| TypeError | Verkeerde bewerking voor type | (42).toUpperCase() |
| RangeError | Waarde buiten geldige range | arr.length = -1 |
| Type | Wanneer | Voorbeeld |
|---|---|---|
| Custom Error | Zelf gegooide fout | throw new Error("...") |
Maak errors.js, run node errors.js. Los elke fout op en zet erboven een comment met het fouttype en de fix.
// OEFENING 1
console.log(naam);
// OEFENING 2
let getal = 42;
console.log(getal.toUpperCase());
throw
function deel(a, b) {
if (b === 0) {
throw new Error("Je kunt niet delen door nul!");
}
return a / b;
}
console.log(deel(10, 0)); throw stopt de uitvoering.try...catch
function deel(a, b) {
if (b === 0) throw new Error("Je kunt niet delen door nul!");
return a / b;
}
try {
console.log(deel(10, 0));
} catch (error) {
console.error("Er ging iets mis:");
console.error(error.message); // alleen de boodschap
} try: voer uitcatch: handel fout aferror.messagenode app.js <a> <b> <op>.”Gebruik console.error en exit-codes:
// Voorbeeld:
if (!isGeldig) {
console.error("Ongeldige invoer. Zie: node app.js <getal1> <getal2> <operator>");
process.exit(1); // 0 = succes, 1 = fout
}
// args: node calculator.js 10 5 +
const [, , aStr, bStr, op] = process.argv;
function parseGetal(s) {
const n = Number(s);
if (Number.isNaN(n)) {
throw new Error(`"${s}" is geen getal.`);
}
return n;
}
try {
if (!aStr || !bStr || !op) {
throw new Error("Ontbrekende argumenten. Gebruik: node calculator.js <a> <b> <operator>");
}
const a = parseGetal(aStr);
const b = parseGetal(bStr);
if (!["+","-","*","/"].includes(op)) {
throw new Error(`Ongeldige operator "${op}". Kies uit + - * /`);
}
// Berekening...
} catch (err) {
console.error("Fout:", err.message);
process.exit(1);
}
Waarom: je vangt fouten dicht bij de oorzaak en communiceert helder.