加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C# 自定义异常

发布时间:2020-12-15 22:39:58 所属栏目:百科 来源:网络整理
导读:? 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?自定义异常的准则

?

?

自定义异常:

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();
        }
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读