自定义一种成绩录入数据异常DataInputException, 连续输入5个数据,当输入的字符不是0-100之间的数值时,抛出DataInputException类型异常,捕获后输出“Data error”,如果输入内容合法,输出输入的数值内容。
时间: 2023-06-03 11:06:53 浏览: 45
好的,这是一个 Java 编程问题。你可以这样实现:
```java
import java.util.Scanner;
import java.util.InputMismatchException;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] scores = new int[5];
int count = 0;
while (count < 5) {
try {
System.out.print("请输入第 " + (count + 1) + " 个成绩:");
int score = input.nextInt();
if (score < 0 || score > 100) {
throw new DataInputException();
}
scores[count] = score;
count++;
} catch (DataInputException e) {
System.out.println("Data error");
} catch (InputMismatchException e) {
System.out.println("Input error");
input.next();
}
}
System.out.println("录入完成,成绩如下:");
for (int i = 0; i < scores.length; i++) {
System.out.println("第 " + (i + 1) + " 个成绩是:" + scores[i]);
}
}
}
class DataInputException extends Exception {
}
```
这段代码定义了一个自定义异常类 `DataInputException`,当输入不合法时抛出该异常。在 `try-catch` 块中,使用 `Scanner` 类获取输入,并判断输入合法性。如果输入不在 0-100 的范围内,则抛出 `DataInputException` 异常;如果输入类型不是整数,捕获 `InputMismatchException` 异常并输出 "Input error",然后清空输入缓存。当输入 5 个合法数据后,输出每个成绩的值。
注意需要在调用 `nextInt()` 前使用 `hasNextInt()` 判断输入是否为整数类型,以避免异常情况。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)