【案例】定义一个自己的异常类,用于控制输入的年龄做0~150之间,抛出、捕获并处理该异常。
【目的】在用户异常类中如何抛出异常信息。
【代码】
namespace ConsoleApp3 { class Program { static void Main(string[] args) { Age ag = new Age(5); ag.print(); Console.ReadLine(); } } class AgeException : Exception //派生用户自己异常类 { //3个构造函数直接调用基类构造函数 public AgeException() : base() { } public AgeException(string message) : base(message) { } public AgeException(string message, Exception innerEX) : base(message, innerEX) { } } class Age { public int[] a; int i, temp; public Age(int n) { try { a = new int[n]; for (i = 0; i < n; i++) { Console.WriteLine("请输入第{0}个人的年龄:", i + 1); temp = int.Parse(Console.ReadLine()); if (temp > 150 || temp < 0) //抛出异常信息 throw new AgeException("年龄不在正确范围。请输入0-150之间的年龄!"); else a[i] = temp; } } catch (AgeException e)//捕获自定义的异常类型 { Console.WriteLine(e); } catch (Exception e)//捕获所有异常 { Console.WriteLine(e); } } public void print()//输出存放在数组中的年龄 { Console.WriteLine("年龄分别为:"); for (i = 0; i < a.GetLength(0); i++) Console.WriteLine(" {0}", a[i]); } } }
运行结果:
定义用户异常类的形式如下:
[public] calss 异常类名:Expection
{
//定义这个自定义异常类的构造方法
}