|
1 | 1 | /** @format */ |
2 | 2 |
|
3 | | -import { ErrorHandler, Injectable, NgZone } from "@angular/core"; |
| 3 | +import { ErrorHandler, inject, Injectable, NgZone } from "@angular/core"; |
4 | 4 | import { ErrorService } from "./error.service"; |
| 5 | +import { LoggerService } from "../logger/logger.service"; |
5 | 6 |
|
6 | 7 | /** |
7 | 8 | * Глобальный обработчик ошибок приложения |
@@ -31,29 +32,17 @@ import { ErrorService } from "./error.service"; |
31 | 32 | */ |
32 | 33 | @Injectable() |
33 | 34 | export class GlobalErrorHandlerService implements ErrorHandler { |
| 35 | + private readonly logger = inject(LoggerService); |
| 36 | + |
34 | 37 | constructor(private readonly errorService: ErrorService, private readonly zone: NgZone) {} |
35 | 38 |
|
36 | | - /** |
37 | | - * Обрабатывает глобальные ошибки приложения |
38 | | - * @param err - ошибка или Promise rejection |
39 | | - */ |
40 | 39 | handleError(err: any): void { |
41 | | - // Извлекаем фактическую ошибку из Promise rejection или используем как есть |
42 | 40 | const error = err.rejection ? err.rejection : err; |
43 | 41 |
|
44 | | - // Закомментированный код для обработки HTTP ошибок: |
45 | | - // if(error instanceof HttpErrorResponse) { |
46 | | - // switch(error.status) { |
47 | | - // case 404: { |
48 | | - // this.zone.run(() => this.errorService.throwNotFount()) |
49 | | - // break; |
50 | | - // } |
51 | | - // } |
52 | | - // } |
53 | | - |
54 | | - // Логируем ошибки типа Error в консоль |
55 | 42 | if (error instanceof Error) { |
56 | | - console.error(error); |
| 43 | + this.logger.error(`[GlobalError] ${error.name}: ${error.message}`, error.stack); |
| 44 | + } else { |
| 45 | + this.logger.error("[GlobalError] Unknown error", error); |
57 | 46 | } |
58 | 47 | } |
59 | 48 | } |
0 commit comments