0 Tage Serie
javascript / intermediate
Snippet

Implementierung eines benutzerdefinierten globalen ErrorHandlers zur Protokollierung von Laufzeitfehlern

Angular stellt die ErrorHandler-Klasse bereit, um nicht abgefangene Ausnahmen im gesamten Lebenszyklus der Anwendung global zu erfassen. Durch die Erstellung einer Injectable-Klasse, die ErrorHandler implementiert, können Entwickler Fehler normalisieren und Fehlermeldungen an externe Logger delegieren, ohne die Laufzeitumgebung zum Absturz zu bringen.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
import { ErrorHandler, Injectable } from '@angular/core';
@Injectable()
export class GlobalLoggingErrorHandler implements ErrorHandler {
handleError(error: unknown): void {
const message = error instanceof Error ? error.message : String(error);
const stack = error instanceof Error ? error.stack : 'No stack trace';
console.error(`[Application Error]: ${message}`, { stack });
}
}
angular
Erklärung
1
export class GlobalLoggingErrorHandler implements ErrorHandler {
Definiert einen benutzerdefinierten Service, der den Schnittstellenvertrag des Angular ErrorHandlers erfüllt.
2
handleError(error: unknown): void {
Empfängt das ungesicherte Fehlerobjekt, das vom Framework übergeben wird.
3
const message = error instanceof Error ? error.message : String(error);
Prüft den Typ des eingehenden Fehlers, um einen lesbaren Meldungsstring sicher zu extrahieren.
4
console.error(`[Application Error]: ${message}`, { stack });
Protokolliert die strukturierte Fehlermeldung zusammen mit dem optionalen Stack-Trace.