【问题标题】:Map Database exception to Http status code将数据库异常映射到 Http 状态码
【发布时间】:2016-02-03 21:53:41
【问题描述】:

当我尝试删除数据库中的实体时,我得到一个 ForeignKey 约束异常。

我期待这个异常,在服务器上处理它,但也想在客户端处理它。

我应该用什么状态码来表示:您不能删除此实体,并在客户端阻止删除 UI 中的实体。

【问题讨论】:

  • 4xx 范围内的东西。我的建议是>= 470
  • >= 470 在 4xx 范围内不存在...
  • 好吧,如果你想学究气的话....>= 470 < 500
  • 我想说的是:en.wikipedia.org/wiki/List_of_HTTP_status_codes 4xx范围内没有470或更高的状态码。
  • 这是具有 w3c 定义或行业接受定义的状态代码列表。您不会让您的自定义代码与“已定义”代码冲突 - 这会导致精神错乱!选择一个没有现有定义的代码。

标签: c# http asp.net-web-api exception-handling http-status-codes


【解决方案1】:

只有一个真正的“异常”代码 - 500。

对于来自4xx range 的一些操作代码可能是合适的。对于这种情况,也许“403-forbidden”是可以的。

如果您需要更全面的客户端处理 - 发送 200 响应,包括带有空值而不是结果的错误信息。

【讨论】:

  • 嗨,Alexei,这个例外是有效的。我期待它。这不能是 500。
猜你喜欢
  • 1970-01-01
  • 2017-09-09
  • 1970-01-01
  • 2010-12-10
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多