欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C# 自定义异常

程序员文章站 2022-03-20 16:53:34
1、自定义异常类 1.1 为什么要自定义异常类 (1)没有具体系统异常相对应 (2)不希望在Catch块中处理 (3)希望能明确标志错误种类的异常 1.2 自定义异常类定义步骤 继承自System.ApplicationException类,并使用Exception作为后缀名。 1.3 自定义异常的 ......

 

1、自定义异常类

1.1 为什么要自定义异常类

(1)没有具体系统异常相对应

(2)不希望在catch块中处理

(3)希望能明确标志错误种类的异常

1.2 自定义异常类定义步骤

继承自system.applicationexception类,并使用exception作为后缀名。

1.3 自定义异常的准则

 C# 自定义异常

 

自定义异常:

class myexception : applicationexception
    {
        public string error;
        private exception innerexception;

        public myexception() { }
        public myexception(string msg) :base(msg)
        {
            this.error = msg;
        }
        public myexception(string msg, exception innerexception):base(msg,innerexception)
        {
            this.innerexception = innerexception;
            error = msg;
        }
        public string geterror()
        {
            return error;
        }
    }

测试:

  class program
    {
        static void main(string[] args)
        {
            try
            {
                // 无参构造对象
                //throw new myexception();
                //throw new myexception("我的错误哦");
                throw new myexception("我的错误",new exception("这是exception的错误"));
            }
           
            catch (myexception e) 
            {
                //console.writeline(e.geterror());
                console.writeline(e.innerexception.message);
            }
            //*/
            /*
           //因为exception是myexception父类,所以如果这里是exception也能捕获到myexception的错误
           //前提是myexception必须初始化父类exception构造函数,即 public myexception(string msg) :base(msg)
           catch (exception e)
           {
               console.writeline(e.message);
           }
           //*/

            console.readkey();
        }
    }