自定义一个异常类ScoreException,继承自Exception类。有一个私有的成员变量message(异常提示信息,String类型);一个公有的无参数的构造方法,在方法中将message的值确定为“您输入的成绩异常,请核实!”;一个公有的方法show(),该方法的功能是输出message的值。 定义一个学生类Student,有一个私有成员变量score(成绩,double类型);一个带参数的公有方法setScore()用于设置学生的成绩,该方法声明可能抛出异常ScoreException,当设置的成绩为负数或超过100时,会抛出一个异常对象;一个公有方法getScore()用于获取学生的成绩。 在测试类Main中,创建一个Student类的对象zhangsan,尝试调用setScore()方法来设置他的成绩(成绩从键盘输入,double类型),然后调用getScore()方法获取到该成绩后再将其输出。因用户的输入存在不确定性,以上操作有可能捕捉到异常ScoreException,一旦捕捉到该异常,则调用show()方法输出异常提示。不管是否有异常,最终输出“程序结束”。使用try...catch...finally语句实现上述功能。
时间: 2023-12-10 22:39:47 浏览: 137
Java语言基础入门教程 Java开发编程基础课程 第12章 内部类和异常处理 共18页.pptx
代码如下:
```java
// 自定义异常类
class ScoreException extends Exception {
private String message;
public ScoreException() {
this.message = "您输入的成绩异常,请核实!";
}
public void show() {
System.out.println(message);
}
}
// 学生类
class Student {
private double score;
public void setScore(double score) throws ScoreException {
if (score < 0 || score > 100) {
throw new ScoreException();
}
this.score = score;
}
public double getScore() {
return score;
}
}
// 测试类
public class Main {
public static void main(String[] args) {
Student zhangsan = new Student();
Scanner scanner = new Scanner(System.in);
try {
System.out.print("请输入张三的成绩:");
double score = scanner.nextDouble();
zhangsan.setScore(score);
System.out.println("张三的成绩是:" + zhangsan.getScore());
} catch (ScoreException e) {
e.show();
} finally {
System.out.println("程序结束");
}
}
}
```
运行结果如下:
```
请输入张三的成绩:-10
您输入的成绩异常,请核实!
程序结束
```
```
请输入张三的成绩:120
您输入的成绩异常,请核实!
程序结束
```
```
请输入张三的成绩:85.5
张三的成绩是:85.5
程序结束
```
阅读全文