javascript / expert
Snippet
Eigene betriebliche Fehlerabstraktionen über Error.captureStackTrace
Benutzerdefinierte Fehlerklassen enthalten in Stacktraces oft interne Aufruf-Frames des Konstruktors. Node.js bietet über V8 die API Error.captureStackTrace, um unerwünschte Konstruktor-Frames im Stacktrace auszublenden und betriebliche Fehler von Laufzeitfehlern zu unterscheiden.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
export class AppError extends Error {constructor(message, statusCode, isOperational = true) {super(message);this.name = this.constructor.name;this.statusCode = statusCode;this.isOperational = isOperational;Error.captureStackTrace(this, this.constructor);}}
nodejs
Erklärung
1
export class AppError extends Error {
Defines a base application error extending the standard Error prototype.
2
this.name = this.constructor.name;
Setzt den Fehlernamen dynamisch auf den konkreten Klassennamen.
3
Error.captureStackTrace(this, this.constructor);
Schließt den Konstruktoraufruf aus dem Stacktrace für sauberere Fehlermeldungen aus.