第十章 10.2 System. Exception类的使用

案例】定义一个自己的异常类,用于控制输入的年龄做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

{

  //定义这个自定义异常类的构造方法  

}

 

posted on 2019-05-05 20:05  熟烂的番茄  阅读(225)  评论(0编辑  收藏  举报

导航