如何返回对象列表以及Exception

Anj*_*nju 3 java

我的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)

在这种情况下,该方法返回有效学生信息的列表.但是在例外的情况下,我无法找到答案.

有没有办法处理两者,获取有效信息以及获得特殊情况.

Pet*_*rey 6

抛出异常后,您的方法将立即停止,如果不是,则必须处理多个异常.你可以这样做.

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)