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