public HttpResponseMessage Update(dynamic obj)
{
TB_Product oModel = null;
try
{
var id = Convert.ToString(obj.id);
oModel = Newtonsoft.Json.JsonConvert.DeserializeObject<TB_Product>(Convert.ToString(obj.dataModel));
//...复杂的业务逻辑
}
catch(Exception ex)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message);
}
return Request.CreateResponse<TB_Product>(HttpStatusCode.OK, oModel);
}
假如现在在执行try里面复杂业务逻辑的时候发生了异常,我们捕获到了异常然后向客户端返回HttpError对象,这个对象里面包含我们自定义的错误讯息,如果正常则返回HttpResponseMessage对象。
如果请求异常:
如果请求正常
四、总结
以上三种异常的处理方法,可以根据不同的场景选择使用。
- 如果项目对异常处理要求并不高,只需要记录好异常日志即可,那么使用异常筛选器就能够搞定
- 如果项目需要对不同的异常,客户端做不同的处理。而这个时候使用异常筛选器不能详尽所有的异常,可能使用HttpResponseException对象是更好的选择,定义更加精细的异常和异常描述。












