Angular 如何妥善处理,;角度和Web API中的控制错误-2

Angular 如何妥善处理,;角度和Web API中的控制错误-2,angular,web,error-handling,webapi2,Angular,Web,Error Handling,Webapi2,我想知道如何正确处理和控制Angular&Web api中的错误, 在一些教程中,我看到错误是在组件中处理的,而不是在获取数据的服务中处理的。。基本上,后端和角度/客户端错误都在这样的组件中处理: 我想知道他如何处理组件中的后端和前端错误?那么,这是否意味着我不需要在WEB API中使用TRY/CATCH?这应该也能处理吗 我很困惑,请给我解释一下这个例子 我认为应该在服务.ts中添加错误处理程序-在本例中PeopleService,而PeopleService如下所示: 所以我对此感到困惑

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

我想知道他如何处理组件中的后端和前端错误?那么,这是否意味着我不需要在WEB API中使用TRY/CATCH?这应该也能处理吗

我很困惑,请给我解释一下这个例子

我认为应该在
服务.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)在用户浏览器中运行


有关这方面的更多信息,请参阅上的指南。

因此,您的建议是处理调用服务的组件中的错误?我最初的答案是错误的。我编辑了我的答案。最近失去联系很抱歉:)