定义一个"年龄异常类":AgeException,使其继承自Exception,并添加无参、String参数的构造方法; 定义一个"性别异常类":SexException,使其继承自Exception,并添加无参、String参数的构造方法; 定义一个Student类,属性:姓名、性别、年龄。 在性别的set方法中判断是否是男/女,如果不是则抛出:性别异常 在年龄的set方法中判断年龄是否是15–50之间,如果不是则抛出:年龄异常 编写测试类,创建一个Student对象,并在try{}中调用setXxx()方法为对象属性赋值,在catch()中打印年龄错误。 注意:需要使用e.getMessage()
时间: 2024-03-02 13:53:32 浏览: 54
以下是代码实现:
```java
// AgeException.java
public class AgeException extends Exception {
public AgeException() {
super();
}
public AgeException(String message) {
super(message);
}
}
// SexException.java
public class SexException extends Exception {
public SexException() {
super();
}
public SexException(String message) {
super(message);
}
}
// Student.java
public class Student {
private String name;
private String sex;
private int age;
public void setName(String name) {
this.name = name;
}
public void setSex(String sex) throws SexException {
if (!sex.equals("男") && !sex.equals("女")) {
throw new SexException("性别异常");
}
this.sex = sex;
}
public void setAge(int age) throws AgeException {
if (age < 15 || age > 50) {
throw new AgeException("年龄异常");
}
this.age = age;
}
}
// Test.java
public class Test {
public static void main(String[] args) {
Student student = new Student();
try {
student.setName("小明");
student.setSex("其他");
student.setAge(14);
} catch (SexException | AgeException e) {
System.out.println(e.getMessage());
}
}
}
```
在这个例子中,我们定义了两个异常类:`AgeException` 和 `SexException`,它们都继承自 `Exception` 类,并添加了无参、String参数的构造方法。
我们还定义了一个 `Student` 类,它包含了三个属性:`name`、`sex`、`age`,并分别提供了 `setName()`、`setSex()`、`setAge()` 方法用于设置这三个属性。在 `setSex()` 和 `setAge()` 方法中,我们使用了 `throw` 语句抛出了自定义的异常。
在测试类 `Test` 中,我们创建了一个 `Student` 对象,并在 `try{}` 中调用了 `setName()`、`setSex()`、`setAge()` 方法。在 `catch(){}` 中,我们使用了 `e.getMessage()` 方法打印了异常信息。
阅读全文