Обработчик угловых ошибок
Я реализовал глобальный обработчик ошибок в моем приложении. Моя проблема с этим в настоящее время состоит в том, что он перехватывает связанные с клиентом ошибки, но он не перехватывает любую ошибку сервера для вызовов http. Вот как выглядит реализация обработчика ошибок:
import { Injectable, ErrorHandler, Injector } from '@angular/core';
import { HttpErrorResponse } from '@angular/common/http';
import { NotificationService } from '@app/services/notification.service';
@Injectable()
export class GlobalErrorHandler implements ErrorHandler {
constructor(private _injector: Injector) { }
handleError(error: Error | HttpErrorResponse) {
const notificationService: this._injector.get(NotificationService);
if (error instanceof HttpErrorResponse) {
// Server error happened (this DOES NOT get intercepted)
if (!navigator.onLine) {
// No Internet connection
return notificationService.notify('No Internet Connection');
}
// Http Error (this DOES NOT get intercepted)
return notificationService.notify(`${error.status} - ${error.message}`);
} else {
// Client Error Happend (this gets intercepted)
console.error(error);
}
// Log the error anyway
console.error(error);
}
}
Я предоставляю GlobalErrorHandler
в AppModule
как это:
providers: [
{ provide: ErrorHandler, useClass: GlobalErrorHandler}
]
Любые идеи, почему ошибка http не перехватывается обработчиком?