1、自定义异常类:年龄异常 输出错误提示:非正常学生年龄 2、学生类:姓名,性别,年龄 Setter年龄,检查小于15,大于80,抛出“年龄异常”给上级 3、测试类 录入学生信息,输入年龄 捕捉非数字异常,异常时显示信息:输入年龄不是数字 捕捉年龄异常,异常时显示信息:非正常学生年龄 如果正常,getter方法输出学生信息
时间: 2023-12-14 16:40:18 浏览: 92
下面是实现以上功能的代码:
AgeException.java
```java
public class AgeException extends Exception {
public AgeException() {
super("非正常学生年龄");
}
}
```
Student.java
```java
public class Student {
private String name;
private String gender;
private int age;
public Student(String name, String gender, int age) {
this.name = name;
this.gender = gender;
this.age = age;
}
public String getName() {
return name;
}
public String getGender() {
return gender;
}
public int getAge() {
return age;
}
public void setAge(int age) throws AgeException {
if (age < 15 || age > 80) {
throw new AgeException();
}
this.age = age;
}
}
```
Test.java
```java
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String name, gender;
int age;
System.out.print("请输入学生姓名:");
name = scanner.nextLine();
System.out.print("请输入学生性别:");
gender = scanner.nextLine();
try {
System.out.print("请输入学生年龄:");
age = scanner.nextInt();
scanner.nextLine();
Student student = new Student(name, gender, age);
System.out.println("学生信息:");
System.out.println("姓名:" + student.getName());
System.out.println("性别:" + student.getGender());
System.out.println("年龄:" + student.getAge());
} catch (NumberFormatException e) {
System.out.println("输入年龄不是数字");
} catch (AgeException e) {
System.out.println("非正常学生年龄");
}
}
}
```
运行结果:
```
请输入学生姓名:张三
请输入学生性别:男
请输入学生年龄:20
学生信息:
姓名:张三
性别:男
年龄:20
请输入学生姓名:李四
请输入学生性别:女
请输入学生年龄:abc
输入年龄不是数字
请输入学生姓名:王五
请输入学生性别:男
请输入学生年龄:90
非正常学生年龄
```
阅读全文