首页 > 解决方案 > 如何正确处理和控制 Angular 和 Web API 中的错误 - 2

问题描述

我想知道如何正确处理和控制 Angular 和 Web api 中的错误,在一些教程中我看到错误是在组件中处理的,而不是在获取数据的服务中。基本上后端和角度/客户端错误都被处理在这样的组件中:

在此处输入图像描述

我想知道他怎么可能同时处理组件中的后端和前端错误?那么这是否意味着我不需要在 WEB API 中尝试/捕获?这也应该处理?

我在这里很困惑,请解释一下这个例子......

我认为错误处理程序应该添加到service.ts- 在这个例子PeopleService中,虽然PeopleService看起来像这样:

在此处输入图像描述

所以我对此感到困惑:

service.ts 中不应该有处理错误的逻辑吗?

我不应该在 WebApi 中编写 try/catch,这里如何处理后端错误?

感谢帮助伙计们干杯!

标签: angularweberror-handlingwebapi2

解决方案


在您的示例中,后端错误类似于服务器以 404 响应(未找到)。例如,您通过 id 请求了一个特定的人,而服务器没有找到与该 id 相关的任何人,因此它返回 404 响应。这样,客户端将知道用户试图查找的人不存在。

service.ts 中不应该有处理错误的逻辑吗?

角度指南

错误检查、解释和解决是您想要在服务中而不是在组件中执行的操作。

错误被封装在ErrorObservable服务而不是组件中。

然后在您的组件中,您将执行以下操作:

service.subscribe(
   result => this.result = result,
   error => console.log(error)
);

我不应该在 WebApi 中编写 try/catch,这里如何处理后端错误?

您没有处理后端发生的错误。您正在处理从服务器响应返回的错误。例如:如果您的后端存在空引用错误,则像您的示例一样处理错误不会使您的服务器免于崩溃。

后端是它自己的进程。它有自己的错误处理程序。客户端代码(角度)在用户的浏览器中运行。

您可以在Angular 网站上查看指南以了解更多信息。


推荐阅读