angular - 如何正确处理和控制 Angular 和 Web API 中的错误 - 2
问题描述
我想知道如何正确处理和控制 Angular 和 Web api 中的错误,在一些教程中我看到错误是在组件中处理的,而不是在获取数据的服务中。基本上后端和角度/客户端错误都被处理在这样的组件中:
我想知道他怎么可能同时处理组件中的后端和前端错误?那么这是否意味着我不需要在 WEB API 中尝试/捕获?这也应该处理?
我在这里很困惑,请解释一下这个例子......
我认为错误处理程序应该添加到service.ts
- 在这个例子PeopleService
中,虽然PeopleService
看起来像这样:
所以我对此感到困惑:
service.ts 中不应该有处理错误的逻辑吗?
我不应该在 WebApi 中编写 try/catch,这里如何处理后端错误?
感谢帮助伙计们干杯!
解决方案
在您的示例中,后端错误类似于服务器以 404 响应(未找到)。例如,您通过 id 请求了一个特定的人,而服务器没有找到与该 id 相关的任何人,因此它返回 404 响应。这样,客户端将知道用户试图查找的人不存在。
service.ts 中不应该有处理错误的逻辑吗?
从角度指南:
错误检查、解释和解决是您想要在服务中而不是在组件中执行的操作。
错误被封装在ErrorObservable
服务而不是组件中。
然后在您的组件中,您将执行以下操作:
service.subscribe(
result => this.result = result,
error => console.log(error)
);
我不应该在 WebApi 中编写 try/catch,这里如何处理后端错误?
您没有处理后端发生的错误。您正在处理从服务器响应返回的错误。例如:如果您的后端存在空引用错误,则像您的示例一样处理错误不会使您的服务器免于崩溃。
后端是它自己的进程。它有自己的错误处理程序。客户端代码(角度)在用户的浏览器中运行。
您可以在Angular 网站上查看指南以了解更多信息。
推荐阅读
- python - 如何在 python 中使用 sqlalchemy 查询关系数据库
- javascript - 如何使用反应钩子中的函数获得价值?
- sql - SQL Server 2019 安装失败
- python - Selenium 在后续页面上找不到元素
- ibm-midrange - RPGLE as400 中的小数问题
- javascript - 循环元素中的元素
- postgresql - Spring Boot JPA - 按复合唯一列查找
- c - 如果在一个表达式中同时使用左移和右移,为什么会有所不同?
- javascript - 在 Django 模板中运行 javascript 变量
- amazon-web-services - 我无法访问我刚刚在 aws 上创建的网站?