我的Java程序有一个返回List的方法.它使用各种SQL查询填充列表.在某些情况下,数据可能不存在.在那种情况下,我要抛出异常.由于它是一个列表,列表可能包含有效数据.是否可以获取列表以及捕获例外?
public List<Student> getStudentInfo(){
//Contains some static info like name, dob of a Student
List<Student> students = getStudentStaticInfo();
try{
for (Student student: students){
student.setTotalMarks(getStudentMark(student.getId()));
...
}
catch(FailedToFetchDataException e) {
throw new Exception("Failed to fetch data");
} finally {
return students;
}
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,该方法返回有效学生信息的列表.但是在例外的情况下,我无法找到答案.
有没有办法处理两者,获取有效信息以及获得特殊情况.
抛出异常后,您的方法将立即停止,如果不是,则必须处理多个异常.你可以这样做.
public List<Student> getStudentInfo(
BiConsumer<FailedToFetchDataException, Student> handleError) {
//Contains some static info like name, dob of a Student
List<Student> students = getStudentStaticInfo();
for (Student student: students) {
try{
student.setTotalMarks(getStudentMark(student.getId()));
...
} catch(FailedToFetchDataException e) {
handleError.accept(e, student);
}
}
return students;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2966 次 |
| 最近记录: |