26

自定义异常

/* 在C#中所有的异常类型都继承自System.Exception. 总起来说,其派生类分为两种:

              1. SystemException类: 所有的CLR提供的异常类型都是由SystemException派生。

              2. ApplicationException类: 由用户程序引发,用于派生自定义的异常类型,一般不直接进行实例化。

              注:异常要尽可能地描述错误,选一些派生类的异常。

           */

        /*首先要知道System.ApplicationException类的构造函数(4种),属性,方法,事件等。

         *这个例子没有多大的意义,只是简单地介绍了怎么自定义异常。

         */

        public class MyException : System.ApplicationException

        {

            public string Message2;

 

            //base关键字使得派生类MyException可以调用ApplicationException指定参数的构造函数。

            public MyException(String message, String myexception)

                : base(message)

            {

                this.Message2 = myexception;

            }

            public MyException(String message)

            {

                //

            }

        }

        static void Main(string[] args)

        {

            try

            {

                //throw语句一定要在try模块中执行,不然抛出异常,没有捕捉异常语句的话,程序会崩溃

                throw new MyException("This is my exception", "Yes,of course");

            }

            catch (MyException e)

            {

                //可以看出ApplicationException的Message属性是和其构造函数有关的,

                //我们可以自定义Message内容,使其更加完整的描述异常

                Console.WriteLine("{0}", e.Message);

                Console.WriteLine("{0}", e.Message2);

            }

            finally

            {

            }

            Console.ReadKey();

        }

 

 

原文地址:https://www.cnblogs.com/gates/p/3016224.html