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