【发布时间】:2017-10-12 21:11:20
【问题描述】:
大家好,这是我的第一个问题,如果之前有人回答过这个问题,我深表歉意,但我找不到问题的答案,所以我在这里发布。
如果你的方法的返回值可以是正数也可以是负数,而你又不确定返回值的范围,遇到异常应该返回什么值?
例如在下面的方法中-
public double calculateDifference(String studentName, String quizName) {
try {
Quiz quiz = quizDAO.retrieve(quizName);
double averageScore = quiz.getAverageScore();
Student student = quiz.getStudent(studentName);
double score = student.getScore();
return score - averageScore;
} catch (NullPointerException e) {
return -1;
}
}
假设score和average score的范围很大,如果我catch中的返回值等于没有异常时返回的值呢?
比如score=2,平均score=3,所以我会得到-1作为返回值。
当我得到该返回值时,我不确定是否捕获到异常。
我想问的是,是否有办法在被捕获时返回一个不会与其他可能的返回值冲突的唯一双精度值。
【问题讨论】:
-
在调用方法之前检查空值可能更简单。
-
@patrick-hainge 感谢您的及时回复,这是真的。但是,我正在做一个作业,我必须遵循序列图,因此只能在 calculateDifference 方法中调用 getStudent 方法
标签: java return double try-catch