你的位置:首页 > ASP.net教程

[ASP.net教程]简单的异常封装


一般开发中会遇到很多需要自定义抛异常的情况,但是抛出的自定义异常又需要和其他异常(空值引用,数组越界,服务器崩溃等)区分开,则可以用如下代码简单封装。

    public static void ThrowException(string exceptionMessage)    {      Exception ex = new Exception(exceptionMessage);      ex.Data[0] = 1;      throw ex;    }    public static void ExceptionCreate(ref ResultData revalue, Exception ex)    {      if (ex.Data!=null&&ex.Data.Count>0&&(int)ex.Data[0] == 1)        revalue.message = ex.Message;      else        revalue.message = "系统错误,请联系管理员!";      revalue.success = false;    } 


其中ResultData也是简单封装的一个用来记录返回Json的类:

 public class ResultData  {    /// <summary>    /// 是否成功    /// </summary>    public bool success { get; set; }    /// <summary>    /// 服务端消息    /// </summary>    public string message { get; set; }    /// <summary>    /// 错误代码    /// </summary>    public long code { get; set; }    /// <summary>    /// 数据实体    /// </summary>    public dynamic data { get; set; }    /// <summary>    /// 数据总数(用于分页)    /// </summary>    public int TotalDatas { get; set; }    public ResultData()    {      success = true;    }  }  public class ResultData<T>  {    /// <summary>    /// 是否成功    /// </summary>    public bool success { get; set; }    /// <summary>    /// 服务端消息    /// </summary>    public string message { get; set; }    /// <summary>    /// 错误代码    /// </summary>    public long code { get; set; }    /// <summary>    /// 数据实体    /// </summary>    public T data { get; set; }    /// <summary>    /// 数据总数(用于分页)    /// </summary>    public int TotalDatas { get; set; }    public ResultData()    {      success = true;    }  }


接下来就是使用方法了:

    public ActionResult HasPermission()    {      ResultData revalue = new ResultData();      try      {        //不满足指定条件,抛出异常        if(false)            SiteCommon.ThrowException("自定义的异常信息,如:权限不足");      }      catch (Exception ex)      {        SiteCommon.ExceptionCreate(ref revalue,ex);      }      return Json(revalue);    }