Files
trouvetonprofile/src/app/infrastructure/handlers/global-error-handler.ts
2025-12-22 18:07:27 +01:00

32 lines
1.0 KiB
TypeScript

import { ErrorHandler, inject, Injectable } from '@angular/core';
import { HttpErrorResponse } from '@angular/common/http';
import { LoggerService } from '@app/infrastructure/shared/logger.service';
@Injectable()
export class GlobalErrorHandler implements ErrorHandler {
// On utilise inject() pour éviter les soucis de dépendance circulaire dans le constructeur
private logger = inject(LoggerService);
handleError(error: any): void {
let message = '';
let stackTrace = '';
if (error instanceof HttpErrorResponse) {
// Erreur serveur
message = `Erreur Serveur: ${error.status} ${error.message}`;
} else if (error instanceof Error) {
// Erreur Client (JavaScript)
message = `Erreur Client: ${error.message}`;
stackTrace = error.stack || '';
} else {
message = error;
}
// On loggue l'erreur via notre service
this.logger.error(message, stackTrace);
// Optionnel : Relancer l'erreur pour qu'elle apparaisse quand même dans la console du navigateur en DEV
throw error;
}
}