码迷,mamicode.com
首页 > 其他好文 > 详细

简单的异常封装

时间:2016-01-20 11:09:37      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:

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

     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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!