首页 > 解决方案 > 在 Angular Exception 和错误方法订阅中没有相同的信息异常

问题描述

当系统出现异常时,我的后台 API 返回自定义异常。

我可以在其中捕获它的信息,.subscribe(data => {}, error { // HERE })并在 Chrome/F12/Network 中看到它。

但我需要在 Angular Interceptor 中获取此信息,以免为每个订阅编写所有错误方法。

catchError() Angular 拦截器中的 Rxjs 没有此信息。

标签: angularexceptionsubscribeangular-http-interceptors

解决方案


您可以通过以下方式在拦截中获取自定义错误消息:

intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
  return next.handle(request).pipe(
      catchError(err => {
        if (err.status === 401) {
            // code
        }

        const error = err.error.message || err.statusText;
        return throwError(error);
    }))
}

推荐阅读