在阅读Angular 5中的错误处理时,我遇到了两种方法:1. HttpInterceptor和2. ErrorHandler。
这种情况有意义吗?让HttpInterceptor处理HTTP调用错误并将Header添加到请求等中,然后使用Observable.throw(error)中继未处理的错误,以便ErrorHandler可以将其作为全局级别处理?
答案 0 :(得分:1)
在Angular中处理错误的一种传统方法是提供一个ErrorHandler类。可以扩展此类以创建您自己的全局错误处理程序。这也是处理所有发生的错误的有用方法,但对于跟踪错误日志最有用。
通过在HttpClient或HttpInterceptor中实现错误处理,您可以直接处理应用程序中的所有HTTP请求,并具有转换请求,重试请求等功能。因此,ErrorHandler对于更通用的错误处理很有用,但是HttpInterceptor提供了一种更健壮的方法来处理与服务器和网络有关的错误。
请仔细阅读此link,本文将详细提供您的问题所需的详细信息。
答案 1 :(得分:-1)
HttpInterceptor处理HTTP调用错误并将Header添加到请求等中-如果您对客户端的响应中有错误,为什么还要添加标头以指示错误?
我个人是通过ErrorHandler完成的,服务返回可观察的对象,然后使用其自己的errorService提供者等处理组件中的错误。所有个人喜好。
组件(电话服务) 服务(返回对组件的响应) 组件通过订阅确定是错误还是成功 如果错误,则通过组件中的errorService提供程序处理错误
我的2美分。