At kaste sine egne undtagelsestyper i JavaScript
Antallet af indbyggede undtagelser i JavaScript er ikke særlig stort, og de kan som regel ikke opfylde alle vores behov for forskellige undtagelsestyper. Derfor har JavaScript en indbygget mulighed for at oprette undtagelser med deres egen type.
Der er forskellige måder at gøre dette på. Den
enkleste er at videregive et objekt
med nøglerne name og message til throw:
try {
throw {name: 'MyError', message: 'undtagelsestekst'};
} catch (error) {
console.log(error.name); // 'MyError'
console.log(error.message); // 'undtagelsestekst'
}
Tidligere lavede vi en funktion, der kaster en undtagelse ved division med nul:
function div(a, b) {
if (b !== 0) {
return a / b;
} else {
throw new Error('fejl ved division med nul');
}
}
Omstrukturer denne funktion, så den kaster
en undtagelse med en eller anden selvopfundet
type, for eksempel DivisionByZeroError.
Tidligere lavede du en funktion, der kaster en undtagelse ved forsøg på at udtrække kvadratroden af et negativt tal. Omstrukturer din funktion, så den kaster en undtagelse med en type, du selv har opfundet. Tænk godt over navnet på undtagelsen, så dette navn er velvalgt.