C#自定义异常类型的方法和注意项

C#中的异常都是从SystemException(系统异常)和ApplicationException(应用程序异常)两个类派生而来, 在自定义异常类时通常都是从ApplicationException派生,只有在开发.NETFramework的扩展类库时才考虑从SystemException派生。
在定义自己的派生异常类时通常要注意一下几点:
        一:如果你的异常是需要写入文件的,如日志等,则需要将异常类声明为可序列化的[Serializable]
        二:要实现一个无参数的构造函数,因为可能会抛出无参异常
        三:实现一个包含message的构造函数
        四:实现一个包含message,及内部异常类型参数的构造函数
        五:添加自己的错误识别数据成员和处理函数

------------------YYC

 [Serializable]

    class MyException  : ApplicationException
    {
        private int a;
        public MyException() {
            a = 0;
        }
        public MyException(string message,int b)
            : base(message) {
                a = b;
        }
        public MyException(string message, Exception inner,int b)  
            : base(message, inner) {
                a = b;
        }  
        public  int  GetInt()
       {
         return a;
       }

    }

 try {
                int a = 1;
                if (a == 1)
                {
                    throw new MyException("YYC",2);
                   // throw new MyException();
                    //此处的“YYC”字符串是加载在EXception异常对象的Message中
                }
            }
            catch (MyException ex)
            {
                MessageBox.Show(ex.Message+ex.GetInt().ToString());
                //会显示用户加载的错误信息,如果用户有加载信息的话 
            }
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值