zoukankan      html  css  js  c++  java
  • 02024_自定义异常的练习

    1、要求

      (1)定义Person类,包含name与age两个成员变量;

      (2)在Person类的有参数构造方法中,进行年龄范围的判断,若年龄为负数或大于200岁,则抛出NoAgeException异常,异常提示信息“年龄数值非法”;

      (3)在测试类中,调用有参数构造方法,完成Person对象创建,并进行异常的处理。

    2、代码演示

      (1)自定义异常类

    1 class NoAgeException extends Exception{
    2     NoAgeException() {
    3         super();
    4     }
    5 
    6     NoAgeException(String message)    {
    7         super(message);
    8     }
    9 }

      (2)Person类

     1 class Person{
     2     private String name;
     3     private int age;
     4     Person(String name,int age) throws NoAgeException    {
     5         //加入逻辑判断。
     6         if(age<0 || age>200)        {
     7             throw new NoAgeException(age+",年龄数值非法");
     8         }
     9         this.name = name;
    10         this.age = age;
    11     }
    12     //定义Person对象对应的字符串表现形式。覆盖Object中的toString方法。
    13     public String toString()    {
    14         return "Person[name="+name+",age="+age+"]";
    15     }
    16 }

      (3)测试类

     1 class ExceptionDemo{
     2     public static void main(String[] args) {
     3         try {
     4             Person p = new Person("xiaoming",20);
     5             System.out.println(p);
     6         }
     7         catch (NoAgeException ex){
     8             System.out.println("年龄异常啦");
     9         }
    10         System.out.println("over");
    11     }
    12 }

    3、构造函数到底抛出这个NoAgeException是继承Exception呢?还是继承RuntimeException呢?

      (1)如果继承Exception,必须要throws声明,一声明就告知调用者进行捕获,一旦问题处理了调用者的程序会继续执行;

      (2)如果继承RuntimeExcpetion,不需要throws声明的,这时调用是不需要编写捕获代码的,因为调用根本就不知道有问题。一旦发生NoAgeException,调用者程序会停掉,并有jvm将信息显示到屏幕,让调用者看到问题,修正代码

      

  • 相关阅读:
    Win10 UWP Tile Generator
    Win10 BackgroundTask
    UWP Tiles
    UWP Ad
    Win10 build package error collections
    Win10 八步打通 Nuget 发布打包
    Win10 UI入门 pivot multiable DataTemplate
    Win10 UI入门 导航滑动条 求UWP工作
    UWP Control Toolkit Collections 求UWP工作
    Win10 UI入门 SliderRectangle
  • 原文地址:https://www.cnblogs.com/gzdlh/p/8095150.html
Copyright © 2011-2022 走看看