Angular 5:HttpInterceptor能否替代ErrorHandler

Angular 5: Can HttpInterceptor Replace ErrorHandler

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

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

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

HttpInterceptor 来处理 HTTP 调用错误并向请求添加 Header 等——如果您对客户端的响应有错误,为什么要添加一个 header 来指示这是一个错误?

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

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

我的 2 美分。

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

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

请仔细阅读link,本文详细提供了您的问题所需的详细信息。