1

在阅读 Angular 5 中的错误处理时,我遇到了两种方法:1. HttpInterceptor 和 2. ErrorHandler。

  1. HttpInterceptor 是不是比 ErrorHandler 更好的解决方案?
  2. 您可以在您的应用程序中同时实现这两种功能吗?

这个场景有意义吗?让 HttpInterceptor 处理 HTTP 调用错误并将 Header 添加到请求等,然后通过使用 Observable.throw(error) 中继未处理的错误,以便 ErrorHandler 可以将其作为全局级别处理?

4

2 回答 2

1

在 Angular 中处理错误的一种传统方法是提供一个 ErrorHandler 类。可以扩展此类以创建您自己的全局错误处理程序。这也是处理所有发生的错误的有用方法,但主要用于跟踪错误日志。

通过在 HttpClient 或 HttpInterceptor 中实现错误处理,您可以直接处理应用程序中的所有 HTTP 请求,提供转换请求、重试请求等功能。因此,ErrorHandler 对于更通用的错误处理很有用,但 HttpInterceptor 提供了一种更健壮的方式来处理与服务器和网络相关的错误。

请通过此链接,本文详细提供了您的问题所需的详细信息。

于 2019-07-07T09:57:55.420 回答
-1

HttpInterceptor 用于处理 HTTP 调用错误并将 Header 添加到请求等 - 如果您对客户端的响应有错误,为什么要添加一个表明它是错误的标头?

我个人通过 ErrorHandler 完成,服务返回 observable,然后使用它自己的 errorService 提供程序等处理组件中的错误。所有个人喜好。

组件(调用服务)服务(返回对组件的响应)组件通过订阅确定是错误还是成功,如果错误,则通过组件中的errorService提供程序处理错误

我的 2 美分。

于 2018-06-22T18:54:05.797 回答