C# 自定义异常

Posted schangxiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 自定义异常相关的知识,希望对你有一定的参考价值。

 

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

 

以上是关于C# 自定义异常的主要内容,如果未能解决你的问题,请参考以下文章

编写高质量代码改善C#程序的157个建议——建议67:慎用自定义异常

在 C# 中使用自定义构造函数创建异常 [重复]

C# 自定义异常的总结

c#自定义app.config生成配置系统初始化失败异常

设置自定义异常的消息而不将其传递给基本构造函数

python中用来抛出异常的关键字是