练习自定义异常的用法。 ✓ 定义一个年龄异常类AgeException; ✓ 定义一个Person类,具有name(姓名)、age(年龄)属性,以及setAge(int age)方法,当给age属性的值不在0-200范围内时抛出年龄异常。
时间: 2024-02-05 20:03:01 浏览: 119
以下是实现代码:
```python
class AgeException(Exception):
def __init__(self, message):
super().__init__(message)
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def setAge(self, age):
if age < 0 or age > 200:
raise AgeException("年龄必须在0-200之间")
self.age = age
```
首先我们定义了一个AgeException类,它继承了Exception类。在这个类中,我们实现了一个构造函数,它接收一个message参数,用来描述这个异常的信息。
然后我们定义了一个Person类,它具有name(姓名)、age(年龄)属性,以及setAge(int age)方法。在setAge方法中,我们通过判断age的取值是否在0-200的范围内,如果不在这个范围内,就抛出一个AgeException异常。
这样,当我们创建一个Person对象并调用setAge方法时,如果age的值不在0-200的范围内,就会抛出一个AgeException异常,我们可以在程序中捕获这个异常并进行处理。
相关问题
练习自定义异常的用法。 ✓ 定义一个年龄异常类AgeException; ✓ 定义一个Person类,具有name(姓名)、age(年龄)属性,以及setAge(int age)方法,当给age属性的值不在0-200范围内时抛出年龄异常。java
下面是实现代码:
```
public class AgeException extends Exception {
public AgeException(String message) {
super(message);
}
}
public class Person {
private String name;
private int age;
public void setAge(int age) throws AgeException {
if (age < 0 || age > 200) {
throw new AgeException("年龄应该在0-200之间!");
}
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
```
在setAge方法中,我们检查传入的age值是否在0-200之间,如果不在这个范围内,我们就抛出一个年龄异常AgeException。在Person类中,我们还定义了name和age属性以及对应的getter和setter方法。
下面是一个使用示例:
```
public class Test {
public static void main(String[] args) {
Person person = new Person();
person.setName("张三");
try {
person.setAge(300);
} catch (AgeException e) {
System.out.println(e.getMessage());
}
System.out.println(person.getName() + "的年龄是:" + person.getAge());
}
}
```
输出结果:
```
年龄应该在0-200之间!
张三的年龄是:0
```
在这个示例中,我们试图将person的年龄设为300,这是一个不合法的值,会抛出AgeException。由于我们在setAge方法中使用了throws关键字,所以我们需要在调用setAge方法时使用try-catch语句捕获异常。异常被捕获后,程序会输出"年龄应该在0-200之间!",并且person的年龄会保持为0,因为setAge方法没有成功执行。
定义一个年龄异常类AgeException; 定义一个Person类,具有name(姓名)、age(年龄)属性,以及setAge(int age)方法,当给age属性的值不在0-200范围内时抛出年龄异常。
代码示例:
```java
public class AgeException extends Exception {
public AgeException(String message) {
super(message);
}
}
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void setAge(int age) throws AgeException {
if (age < 0 || age > 200) {
throw new AgeException("年龄不在0-200范围内!");
}
this.age = age;
}
}
```
在上面的示例中,我们定义了一个名为 `AgeException` 的年龄异常类,继承自 `Exception` 类。然后,我们定义了一个 `Person` 类,具有 `name` 和 `age` 两个属性,以及一个 `setAge()` 方法。在 `setAge()` 方法中,我们判断了传入的年龄值是否在 0-200 范围内,如果不在,就抛出 `AgeException` 异常。这样,当我们使用 `setAge()` 方法设置年龄时,就可以捕获这个异常并进行相应的处理。