java面向对象学生总成绩异常处理练习
时间: 2024-11-04 17:14:49 浏览: 52
Java面向对象编程:基于java Swing与MySQL的学生成绩管理系统【含项目源码及数据库脚本】
在Java面向对象编程中,处理学生总成绩异常的一个典型练习场景可能是创建一个学生类,包括姓名、各科成绩等属性,并提供计算总分的方法。在这个过程中,可能会遇到一些异常情况,比如分数不是数字、负数或超过满分等。以下是这个练习的基本步骤:
1. **定义学生类**:
```java
class Student {
private String name;
private Map<String, Double> scores; // 假设每门课程都有对应的名称和成绩
public Student(String name) {
this.name = name;
this.scores = new HashMap<>();
}
public void addScore(String subject, double score) {
if (score < 0 || score > 100) {
throw new IllegalArgumentException("Score must be between 0 and 100.");
}
scores.put(subject, score);
}
public double calculateTotalGrade() {
double total = 0;
for (double score : scores.values()) {
total += score;
}
return total;
}
}
```
2. **异常处理**:
- 在`addScore`方法中捕获`IllegalArgumentException`并抛出,提示用户输入错误的分数。
- 在`calculateTotalGrade`方法中,可以添加try-catch块来处理可能存在的除以0的情况(如果所有科目都没有成绩),避免`ArithmeticException`。
```java
try {
total = calculateTotalGrade();
} catch (ArithmeticException e) {
System.out.println("Cannot calculate total grade with no scores.");
}
```
阅读全文