C# WebApi 异常处理解决方案

2019-12-30 19:54:33于海丽


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对象。

如果请求异常:

C#,WebApi,异常处理

如果请求正常

C#,WebApi,异常处理

四、总结

以上三种异常的处理方法,可以根据不同的场景选择使用。

  • 如果项目对异常处理要求并不高,只需要记录好异常日志即可,那么使用异常筛选器就能够搞定
  • 如果项目需要对不同的异常,客户端做不同的处理。而这个时候使用异常筛选器不能详尽所有的异常,可能使用HttpResponseException对象是更好的选择,定义更加精细的异常和异常描述。