自定义异常类

时间:2022-10-12 20:31:48

使用java内置的异常类可以描述在编程时出现的大部分异常情况

也可以通过自定义异常描述特定业务产生的异常类型

所谓自定义异常,就是定义一个类,去继承Throwable类作者它的子类

例子:针对酒店不允许18岁以下,80岁以上的用户单独入住,定义一个异常类

package com.mpp.test;

//定义一个酒店年龄限制的异常类,继承Exception
public class HotelAgeException extends  Exception {
    //无参构造,完成异常信息描述
    public HotelAgeException(){
        //调用父类的带参构造???
        super("18岁以下,80岁以上的住客必须由亲友陪同");
    }
}

抛出自定义异常类

package com.mpp.test;

import java.util.Scanner;

public class TryDemoFour {
    public static void main(String[] args) {
        try {
            testAge();
        } catch (HotelAgeException e) {
            System.out.println(e.getMessage());   //显示异常信息
            System.out.println("酒店前台工作人员不允许办理入住登记");
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    public static void testAge() throws HotelAgeException {
            System.out.println("请输入年龄:");
            Scanner input = new Scanner(System.in);
            int age = input.nextInt();
            if (age < 18 || age > 80) {
                throw new HotelAgeException();   //抛出自定义的异常类
            } else {
                System.out.println("欢迎入住本酒店");
            }
    }
}