0 Tage Serie
javascript / intermediate
Snippet

Bereinigen von Stack-Traces in Fehlern

In Node.js (V8) ermöglicht Error.captureStackTrace, die internen Implementierungsdetails Ihrer benutzerdefinierten Fehlerklassen im Stack-Trace zu verbergen, wodurch Protokolle sauberer und für den Aufrufer relevanter werden.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
class DatabaseError extends Error {
constructor(message, query) {
super(message);
this.query = query;
if (Error.captureStackTrace) {
Error.captureStackTrace(this, DatabaseError);
}
}
}
throw new DatabaseError('Connection lost', 'SELECT * FROM users');
nodejs
Erklärung
1
Error.captureStackTrace(this, DatabaseError);
Erfasst den Stack-Trace, schließt aber den Konstruktor von DatabaseError aus der Ausgabe aus.