自定义异常
/* 在C#中所有的异常类型都继承自System.Exception. 总起来说,其派生类分为两种:
1. SystemException类: 所有的CLR提供的异常类型都是由SystemException派生。
2. ApplicationException类: 由用户程序引发,用于派生自定义的异常类型,一般不直接进行实例化。
注:异常要尽可能地描述错误,选一些派生类的异常。
*/
/*首先要知道System.ApplicationException类的构造函数(4种),属性,方法,事件等。
*这个例子没有多大的意义,只是简单地介绍了怎么自定义异常。
*/
public class MyException : System.ApplicationException
{
public string Message2;
//base关键字使得派生类MyException可以调用ApplicationException指定参数的构造函数。
public MyException(String message, String myexception)
: base(message)
{
this.Message2 = myexception;
}
public MyException(String message)
{
//
}
}
static void Main(string[] args)
{
try
{
//throw语句一定要在try模块中执行,不然抛出异常,没有捕捉异常语句的话,程序会崩溃
throw new MyException("This is my exception", "Yes,of course");
}
catch (MyException e)
{
//可以看出ApplicationException的Message属性是和其构造函数有关的,
//我们可以自定义Message内容,使其更加完整的描述异常
Console.WriteLine("{0}", e.Message);
Console.WriteLine("{0}", e.Message2);
}
finally
{
}
Console.ReadKey();
}