java代码,Student类有一个输入分数的setSocre(int score)方法,对象调用该方法是必须向参数传递一个0-150之间的正整数,否则方法就抛出异常。自定义一个异常类完成此分数的检查,并编写测试类,对上述方法进行测试。
时间: 2024-03-10 16:45:22 浏览: 17
下面是该程序的实现:
```java
//自定义异常类
class ScoreException extends Exception {
public ScoreException(String message) {
super(message);
}
}
//学生类
class Student {
private int score;
public void setScore(int score) throws ScoreException {
if(score < 0 || score > 150) {
throw new ScoreException("分数必须在0-150之间!");
}
this.score = score;
}
public int getScore() {
return score;
}
}
//测试类
public class Main {
public static void main(String[] args) {
Student s = new Student();
try {
s.setScore(80);
System.out.println("设置分数成功,分数为:" + s.getScore());
s.setScore(200); //超过范围,抛出异常
} catch(ScoreException e) {
System.out.println("设置分数失败,原因为:" + e.getMessage());
}
}
}
```
在上面的程序中,我们首先定义了一个自定义异常类`ScoreException`,该类继承自`Exception`类。然后,我们定义了一个`Student`类,该类中有一个`setScore`方法用于设置学生的分数。在`setScore`方法中,我们检查传递的分数是否在0-150之间,如果不是,则抛出`ScoreException`异常,并且在异常的构造方法中传递异常信息。最后,我们在测试类中创建了一个`Student`对象`s`,并且在`try-catch`语句中调用`setScore`方法测试程序的正确性。
当我们运行上面的程序时,将会输出以下结果:
```
设置分数成功,分数为:80
设置分数失败,原因为:分数必须在0-150之间!
```
可以看到,当我们传递的分数在0-150之间时,程序能够正常设置分数并输出分数;当我们传递的分数超出了范围时,程序能够抛出异常并输出异常信息,符合我们的预期。