自定义异常类:年龄异常

. 论述题
1、自定义异常类:年龄异常

    输出错误提示:非正常学生年龄

2、学生类:姓名,性别,年龄

    Setter年龄,检查小于15,大于80,抛出“年龄异常”给上级 

3、测试类

    录入学生信息,输入年龄

        捕捉非数字异常,异常时显示信息:输入年龄不是数字

        捕捉年龄异常,异常时显示信息:非正常学生年龄

    如果正常,getter方法输出学生信息

该回答引用chatgpt:

img


package com.test;

import java.util.Scanner;

// 自定义异常类:年龄异常
// 自定义异常类:年龄异常
class AgeException extends Exception {
    public AgeException(String message) {
        super(message);
    }
}


/// 学生类
class Student {
    private String name;
    private String gender;
    private int age;

    public Student(String name, String gender) {
        this.name = name;
        this.gender = gender;
    }

    // Setter年龄,检查小于15,大于80,抛出"年龄异常"给上级
    public void setAge(int age) throws AgeException {
        if (age < 15 || age > 80) {
            throw new AgeException("非正常学生年龄");
        }
        this.age = age;
    }

    // Getter方法输出学生信息
    public String getInfo() {
        return "姓名:" + name + "\n性别:" + gender + "\n年龄:" + age;
    }
}

// 测试类
public class Test {
    public static void main(String[] args) {
        try {
            // 录入学生信息,输入年龄
            Scanner scanner = new Scanner(System.in);

            System.out.print("请输入学生姓名:");
            String name = scanner.nextLine();

            System.out.print("请输入学生性别:");
            String gender = scanner.nextLine();

            System.out.print("请输入学生年龄:");
            int age = scanner.nextInt();

            Student student = new Student(name, gender);

            // 捕捉年龄异常,异常时显示信息:非正常学生年龄
            student.setAge(age);

            // 如果正常,getter方法输出学生信息
            System.out.println(student.getInfo());

            scanner.close();
        } catch (NumberFormatException e) {
            System.out.println("输入年龄不是数字");
        } catch (AgeException e) {
            System.out.println(e.getMessage());
        }
    }
}