3. 自定义一个异常类,叫做负年龄异常: MinusAgeException。再定义类Person,包含姓名name,年龄age等属性,在Person类中有一个方法setAge(),若年龄为负,则抛出MinusAgeException异常。 另外编写驱动类,对上述方法进行测试。
时间: 2024-12-12 20:22:32 浏览: 10
首先,我们需要创建一个名为`MinusAgeException`的自定义异常类,它继承自Java内置的`RuntimeException`。在这个异常类中,我们可以添加一些描述信息,如年龄小于零的信息。
```java
public class MinusAgeException extends RuntimeException {
public MinusAgeException(String message) {
super(message);
}
}
```
接着,我们定义`Person`类,包含姓名和年龄两个属性,同时定义一个`setAge()`方法,检查年龄是否为负数,如果是则抛出`MinusAgeException`。
```java
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
setAge(age);
}
public void setAge(int age) throws MinusAgeException {
if (age < 0) {
throw new MinusAgeException("年龄不能为负值");
}
this.age = age;
}
// 其他 getter 和 setter 方法...
}
```
现在,我们在主驱动类`Main`中测试`Person`类:
```java
public class Main {
public static void main(String[] args) {
Person person = new Person("张三", -5); // 故意设置一个负年龄
try {
person.setAge(-5);
} catch (MinusAgeException e) {
System.out.println(e.getMessage());
}
person = new Person("李四", 28); // 正常年龄
person.setAge(28); // 没有异常,正常设置年龄
System.out.println(person.getName() + " 的年龄是 " + person.getAge());
}
}
```
在这个驱动类中,当我们尝试给一个负年龄的人设置年龄时,会捕获到`MinusAgeException`并打印其消息。如果年龄正常,程序将继续执行并且输出年龄。
阅读全文