В чем разница между двумя методами обработки ошибок в angular 7. Нужно ли обрабатывать глобальные ошибки в HttpInterceptor, а также во встроенном angular ErrorHandler. Пожалуйста, дайте мне знать в HttpInterceptor, какие типы ошибок мы можем обработать и в ErrorHandler, какие ошибки мы можем обрабатывать. Нужны ли нам оба или достаточно одного
export class InterceptorService implements HttpInterceptor {
constructor() { }
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(request).pipe(
retry(1),
catchError((error: HttpErrorResponse) => {
let errMsg = '';
if (error.error instanceof ErrorEvent) {
// Client Side Error
errMsg = `Client Error: ${error.error.message}`;
console.log(error);
}
else {
// Server Side Error
errMsg = `Server Error: ${error.status}, Message: ${error.message}`;
console.log(error);
}
return throwError(errMsg);
})
);
}
}
export class ErrorsHandler implements ErrorHandler {
constructor(private injector: Injector) { }
handleError(error: Error | HttpErrorResponse) {
const notificationService = this.injector.get(NotificationService);
if (error instanceof HttpErrorResponse) {
// Server or connection error happened
if (!navigator.onLine) {
// Handle offline error
return notificationService.error('No Internet Connection');
} else {
// Handle Http Error
return notificationService.error(`${error.status} - ${error.message}`);
}
} else {
// Handle Client Error
notificationService.error(error.message);
}
}
}