标签:
一般开发中会遇到很多需要自定义抛异常的情况,但是抛出的自定义异常又需要和其他异常(空值引用,数组越界,服务器崩溃等)区分开,则可以用如下代码简单封装。
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); }
标签:
原文地址:http://www.cnblogs.com/dymax/p/5144323.html