简单的异常封装

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

     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);
        }                    
时间: 2024-08-09 19:53:29

简单的异常封装的相关文章

iOS开发—音频的播放的简单介绍和封装工具类

iOS开发—音频的播放的简单介绍和封装工具类 一.音效的播放简单介绍 简单来说,音频可以分为2种 (1)音效 又称“短音频”,通常在程序中的播放时长为1~2秒 在应用程序中起到点缀效果,提升整体用户体验 (2)音乐 比如游戏中的“背景音乐”,一般播放时间较长 框架:播放音频需要用到AVFoundation.framework框架 二.音效的播放 1.获得音效文件的路径 NSURL *url = [[NSBundle mainBundle] URLForResource:@"m_03.wav&qu

获取样式的简单的函数封装

var CSS = { getStyle:function(elem,name){//获取样式 if(elem.style[name]){ return elem.style[name]; } else if(elem.currentStyle){ return elem.currentStyle[name]; } else if(document.defaultView && document.defaultView.getComputedStyle){ name = name.repl

java中简单的db封装

package com.melin.bbs;    import java.sql.Connection;  import java.sql.DriverManager;  import java.sql.ResultSet;  import java.sql.SQLException;  import java.sql.Statement; public class DB { //建立连接 public static Connection getConn(){          Connect

简单二次封装的Golang图像处理库:图片裁剪

简单二次封装的Golang图像处理库:图片裁剪 一.功能 Go语言下的官方图像处理库 简单封装后对jpg和png图像进行缩放/裁剪的库 二.使用说明 1.首先下载 go get -v -u github.com/hunterhug/go_image 2.主要函数 按照宽度进行等比例缩放,第一参数是图像文件,第二个参数是缩放后的保存文件路径 err := ScaleF2F(filename, savepath, width) 按照宽度和高度进行等比例缩放,第一参数是图像文件,第二个参数是缩放后的保

仿照jQuery进行一些简单的框架封装(欢迎指教~)

1 (function(window,undefined){ 2 var arr = [], 3 push = arr.push, 4 slice = arr.slice; 5 //首先要做的就是封装一个parseHtml函数 6 //要注意的是,parthHtml要放在一个自调用函数内 7 var parseHtml = (function(){ 8 //做一个模板 9 var div = document.createElement('div'); 10 //这个函数是用来创建标签 11 f

Java异常封装(自定义错误码和描写叙述,附源代码)

真正工作了才发现.Java里面的异常在真正工作中使用还是十分普遍的. 什么时候该抛出什么异常,这个是必须知道的. 当然真正工作里面主动抛出的异常都是经过分装过的,自己能够定义错误码和异常描写叙述. 以下小宝鸽就为大家介绍一个Java异常简单封装的样例. 在给出异常分装样例之前.须要给大家普及Java里面的checked异常和unchecked异常的个概念. 一.checked异常和unchecked异常 这里之所以让大家清楚checked异常和unchecked异常概念,是由于:待会我们的异常是

前端小白之每天学习记录----js简单的组件封装

设计模式:是解决问题的模板 关于设计模式,可以阅读汤姆大叔的博文http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html 这里简单介绍两种设计模式: 1.单例模式:单例就是保证一个类只有一个实例 eg:在JavaScript里,实现单例的方式有很多种,其中最简单的一个方式是使用对象字面量的方法,其字面量里可以包含大量的属性和方法: var people = { name: "lxb", age: "22"

简单的ajax封装

/** * 封装的ajax请求函数有利于集中处理一些公共部分 * 调用ajax */ $(document).on('click', '.btn', function(e) { var data = {}: var reqObj = { data: data, callback: { success: function(res) { alert('成功'); }, error: function(res){ alert('失败'); } } }; ajax(api.apply, reqObj,

简单瀑布流封装

function createLi(){ var oLi=document.createElement('li'); oLi.style.height=parseInt(50+Math.random()*400)+'px'; oLi.style.background='rgb('+rnd(0,255)+','+rnd(0,255)+','+rnd(0,255)+')'; return oLi; }; function rnd(n,m){ return parseInt(Math.random()