自定义一个异常,编程创建并抛出某个异常类的实例,运行该程序并观察执行结果。某学生考试后从键盘输入计算5门课程后输出平均分,请自定义异常,并抛出异常,并编写异常捕获程序实现。用java语言编写
时间: 2024-12-30 12:40:14 浏览: 8
在Java中,你可以自定义异常类来表示特定的情况或错误。为了实现这个功能,你需要做以下几个步骤:
1. **定义异常类**:
首先,你需要创建一个新的异常类,继承自`Exception`或其子类(如`ArithmeticException`如果这个异常与数学运算相关)。例如,如果你要处理的是输入不合法导致的平均分计算错误,可以创建一个名为`InvalidInputException`的类:
```java
public class InvalidInputException extends Exception {
public InvalidInputException(String message) {
super(message);
}
}
```
2. **在主程序中抛出异常**:
在获取用户输入并计算平均分的地方,检查输入是否合法,如果不合法就抛出这个自定义的异常。这里我们假设用户可能输入了负数或非数字字符:
```java
public static double calculateAverage() throws InvalidInputException {
Scanner scanner = new Scanner(System.in);
int[] grades = new int[5];
for (int i = 0; i < 5; i++) {
System.out.println("请输入第" + (i+1) + "门课程的成绩:");
if (!scanner.hasNextInt()) {
throw new InvalidInputException("无效输入!只接受整数");
}
grades[i] = scanner.nextInt();
if (grades[i] < 0) {
throw new InvalidInputException("成绩不能为负数");
}
}
// 计算平均分
double sum = 0;
for (int grade : grades) {
sum += grade;
}
return sum / grades.length;
}
```
3. **捕获异常**:
在调用`calculateAverage()`方法的地方,添加异常处理代码来捕获并处理可能出现的`InvalidInputException`:
```java
public static void main(String[] args) {
try {
double average = calculateAverage();
System.out.println("五门课程的平均分为: " + average);
} catch (InvalidInputException e) {
System.out.println(e.getMessage());
}
}
```
当你运行这个程序时,如果用户提供了一个非法的输入,比如非整数或负数,就会抛出异常并在`catch`块中打印出错误信息,而不是直接终止程序。
阅读全文