javascript / expert
Snippet
Strukturierte Domänen-Fehlerhierarchie via Error.captureStackTrace
Benutzerdefinierte Fehlerklassen in Node.js-Produktionsdienste benötigen eine Bereinigung des Aufruflisten-Stacks und die Bewahrung von Metadaten. Durch Vererbung von Error und Übergabe von options.cause wird die Fehlerverkettung unterstützt. V8's Error.captureStackTrace schließt interne Konstruktor-Frames aus dem Stack-Trace aus, um eine präzise Kontextberichterstattung zu gewährleisten.
snippet.js
javascript
1
2
3
4
5
6
7
8
class DomainValidationError extends Error {constructor(message, context = {}, cause = null) {super(message, { cause });this.name = this.constructor.name;this.context = Object.freeze({ ...context });Error.captureStackTrace(this, this.constructor);}}
nodejs
Erklärung
1
class DomainValidationError extends Error {
Definiert eine benutzerdefinierte Domänen-Ausnahmeklasse, die von Error erbt.
2
super(message, { cause });
Ruft den Super-Konstruktor auf und unterstützt die nativer Fehlerursache (Error Cause).
3
Error.captureStackTrace(this, this.constructor);
Verwendet die V8-API, um den Konstruktor-Aufruf selbst aus dem Stacktrace zu entfernen.