【问题标题】:How to properly handle & control Errors in Angular and Web API - 2如何正确处理和控制 Angular 和 Web API 中的错误 - 2
【发布时间】:2018-04-30 10:03:44
【问题描述】:

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

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

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

我认为应该在service.ts 中添加错误处理程序——在本例中为PeopleService,而PeopleService 看起来像这样:

所以我对此感到困惑:

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

我不应该在 WebApi 中编写 try/catch,后端错误是怎么来的 在这里处理?

感谢大家的帮助 干杯!

【问题讨论】:

    标签: angular web error-handling webapi2


    【解决方案1】:

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

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

    来自Angular guide

    错误检查、解释和解决是你想要在服务中做的事情,而不是在组件中。

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

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

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

    我不应该在WebApi中写try/catch吗,这里怎么处理后端错误?

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

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

    您可以在angular site 上查看指南以了解更多信息。

    【讨论】:

    • 所以你的建议是处理调用服务的组件中的错误?
    • 我原来的答案是错误的。我编辑了我的答案。最近失去了联系,对此感到抱歉:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-07
    • 2018-12-06
    • 2016-08-01
    • 2019-05-25
    • 2020-05-22
    相关资源
    最近更新 更多