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());
                //会显示用户加载的错误信息,如果用户有加载信息的话 
            }

posted @ 2017-08-24 16:40  杨元年czyh  阅读(389)  评论(0)    收藏  举报