修改代码:要求:自定义异常类ScoreException,增加try-catch语句, 当用户输入的数字大于100或小于0时,提示“数*是一个非法的成绩数据”
时间: 2024-02-26 09:57:49 浏览: 26
好的,以下是修改后的示例代码,供你参考:
```java
import java.util.Scanner;
public class ScoreDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = sc.nextInt();
try {
if (score < 0 || score > 100) {
throw new ScoreException(score + "是一个非法的成绩数据");
} else {
System.out.println("输入的成绩为:" + score);
}
} catch (ScoreException e) {
System.out.println(e.getMessage());
}
}
}
class ScoreException extends Exception {
public ScoreException(String message) {
super(message);
}
}
```
在这个示例代码中,我们自定义了一个名为 `ScoreException` 的异常类,它继承自 `Exception` 类。在 `main` 方法中,我们通过 `try-catch` 语句来捕获可能会抛出的 `ScoreException` 异常。当用户输入的成绩数据不在合法范围内时,我们会抛出 `ScoreException` 异常,并将非法数据包含在异常信息中。在 `catch` 语句块中,我们捕获并处理了 `ScoreException` 异常,并输出了异常信息。
需要注意的是,为了使程序更加健壮,我们在判断用户输入的成绩数据是否合法时,使用了 `if` 语句进行判断,而不是直接抛出异常。只有在用户输入的成绩数据不合法时,我们才会抛出 `ScoreException` 异常。这样做可以避免程序因为用户输入不合法数据而直接崩溃的情况。