Java请自定义一个异常类AgeOutBoundsException;然后定义一个学生类Student,学生的年龄在18~25之间,则接收,否则抛出异常信息:“年龄不合法”;在测试类中输入学生信息:姓名、年龄,合法数据接收,否则重新输入,直到合法为止。
时间: 2024-09-29 12:15:35 浏览: 20
在Java中,你可以按照以下步骤创建自定义异常类`AgeOutOfRangeException`并实现所需的逻辑:
首先,创建一个名为`AgeOutOfRangeException`的异常类,它应该继承自`java.lang.RuntimeException`或`java.lang.Exception`,因为这是自定义异常的常见做法:
```java
public class AgeOutOfRangeException extends RuntimeException {
public AgeOutOfRangeException(String message) {
super(message);
}
}
```
接下来,定义`Student`类,它有一个私有变量`age`以及相关的getter和setter方法。在构造函数中添加对年龄范围的检查,并使用上述异常处理:
```java
public class Student {
private int age;
public Student(int age) throws AgeOutOfRangeException {
if (age < 18 || age > 25) {
throw new AgeOutOfRangeException("年龄不合法");
}
this.age = age;
}
// getters and setters for age...
}
```
现在,在测试类`TestClass`中,我们可以创建一个`Scanner`对象用于用户输入,循环获取学生信息直到输入的年龄合法:
```java
import java.util.Scanner;
public class TestClass {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请输入学生姓名:");
String name = scanner.nextLine();
System.out.println("请输入学生年龄:");
int inputAge = scanner.nextInt();
try {
Student student = new Student(inputAge);
break; // 如果年龄合法,跳出循环
} catch (AgeOutOfRangeException e) {
System.out.println(e.getMessage());
scanner.next(); // 清除上一次输入的影响
}
}
System.out.println("学生信息:" + name + ", 年龄:" + student.getAge());
}
}
```
在这个程序中,当输入的年龄不在18到25之间时,会捕获`AgeOutOfRangeException`并提示用户重新输入。一旦输入的是合法年龄,就会创建一个新的`Student`实例并结束循环。
阅读全文