你能否澄清Web API错误管理的最佳实践是什么?实际上,我不知道在我的Api请求中使用try catch是否是一个好习惯。
public Vb.Order PostOrderItem(Vb.Order order)
{
if (OAuth.isValid(Request.Headers.GetValues("Token").Single()) != true)
{
HttpResponseMessage httpResponseMessage = new HttpResponseMessage(HttpStatusCode.Unauthorized);
throw new HttpResponseException(httpResponseMessage);
}
if (!ModelState.IsValid)
{
HttpResponseMessage httpResponseMessage = new HttpResponseMessage(HttpStatusCode.BadRequest);
throw new HttpResponseException(httpResponseMessage);
}
try
{
return Vb.Document.Generate(order);
}
catch (Exception ex)
{
logger.Error(ex);
HttpResponseMessage httpResponseMessage = new HttpResponseMessage(HttpStatusCode.BadRequest);
httpResponseMessage.Content = new StringContent(ex.Message);
throw new HttpResponseException(httpResponseMessage);
}
}
我有这样一种感觉,使用try catch来处理服务器端代码并不是一个好的实践,因为我只是记录了异常并重新抛出它。
logger.Error(ex);
代码如何呢?假设Vb.Document.Generate(order)
是一个数据库调用,如果出现异常,我想记录下来。并将错误消息返回到 JSON 响应中。 - ca9163d9