Angular 5:HttpInterceptor能否替代ErrorHandler
Angular 5: Can HttpInterceptor Replace ErrorHandler
在阅读 Angular 5 中的错误处理时,我遇到了两种方法:1. HttpInterceptor 和 2. ErrorHandler。
- HttpInterceptor 是比 ErrorHandler 更好的解决方案吗?
- 你能在你的应用程序中同时实现这两种功能吗?
这个场景有意义吗?让 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,本文详细提供了您的问题所需的详细信息。
在阅读 Angular 5 中的错误处理时,我遇到了两种方法:1. HttpInterceptor 和 2. ErrorHandler。
- HttpInterceptor 是比 ErrorHandler 更好的解决方案吗?
- 你能在你的应用程序中同时实现这两种功能吗?
这个场景有意义吗?让 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,本文详细提供了您的问题所需的详细信息。