【发布时间】:2014-07-10 10:40:31
【问题描述】:
我正在写Web-API 方法。一种这样的方法类似于
public IHttpActionResult Post([FromBody]MyDTO)
{
//validations
try
{
InsertInToDB(MyDTO.SomeField);
}
catch(Exception ex)
{
// Say some exception has occurred while inserting in to DB. For eg. SomeField is not a acceptable value.
// What is the response that I should send to the API user ?
// Notfound, BadRequest does not seem to be fit in this case.
}
}
注意:InsertIntoDB 返回 void
现在,如果该方法中出现一些异常,我应该发送给用户的HttpStatusCode 应该是什么?
NotFound 或 Badrequest 响应似乎不适合这种情况。有什么想法吗?
【问题讨论】:
-
HttpStatusCode.InternalServerError怎么样 -
500 内部服务器错误怎么办?
-
关于 SO 上的 HTTP 状态码有 很多 的讨论,这种情况并不是唯一的。 4xx 范围用于客户端错误,5xx 用于服务器错误。如果在没有先验证输入的情况下捕获
Exception,则无法区分客户端错误(缺少输入)或服务器错误(SQL 无法访问)。 -
尝试使用搜索 :) HTTP Status Code for database is down.
-
@CodeCaster:哎呀。我的错。现在明白了。非常感谢:)
标签: c# .net exception asp.net-web-api asp.net-web-api2