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.