java从键盘接收学生成绩,成绩介于0-100。自定义一个无效成绩的异常,编写方法接收成绩,如果输入无效成绩,则输出该异常
时间: 2024-10-23 17:03:37 浏览: 21
在Java中,你可以创建一个自定义的异常来处理这种情况。首先,你需要定义一个新的`InvalidScoreException`类,它应该是一个`RuntimeException`的子类,因为`InvalidScoreException`通常表示程序运行时的错误。接下来,你可以编写一个方法来接收用户输入的成绩,并检查其有效性。
这里是一个简单的例子:
```java
public class InvalidScoreException extends RuntimeException {
public InvalidScoreException(String message) {
super(message);
}
}
public static void inputStudentScore() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入学生的成绩(0-100):");
try {
int score = scanner.nextInt();
if (score < 0 || score > 100) {
throw new InvalidScoreException("输入的成绩无效,必须在0到100之间");
} else {
System.out.println("有效成绩:" + score);
}
} catch (InputMismatchException e) {
// 处理非整数输入的情况
System.out.println("输入错误,请输入整数!");
scanner.next(); // 清除非法字符
inputStudentScore();
} catch (InvalidScoreException e) {
System.out.println(e.getMessage());
} finally {
scanner.close();
}
}
// 调用方法
inputStudentScore();
```
在这个例子中,我们使用了`try-catch`结构来捕获可能出现的异常。当输入不是有效的整数或分数超出范围时,会抛出相应的异常并捕获处理。`finally`块用于关闭扫描器,无论是否发生异常。
阅读全文