在SQL查询没有结果后处理Nullpointerexception

时间:2016-04-19 06:39:11

标签: java nullpointerexception

我有一个基于MVC的Java应用程序,它有三个模型:RoomStudentStudentRoom

StudentRoom包含RoomStudent的对象。

现在我遇到的问题是,如果我的SQL查询没有返回结果,我会像这样检查学生姓名的值

if(studentRoom.student.name != null) {
}

我会得到一个NullPointerException而且我不知道如何处理它。

我应该设置Student.name = "";,因为我的查询没有结果吗?

2 个答案:

答案 0 :(得分:3)

if(studentRoom != null && studentRoom.student != null && studentRoom.student.name != null){
  //.. Access student
}

以上解决方案看起来有点奇怪。您最好使用getter/setter方法,而不是直接访问对象。

除此之外,您可以在isStudentAvailable()中定义studentRoom等方法,以检查其中是否包含Student

  

我应该设置Student.name ="&#34 ;;既然我的查询没有结果?

这完全取决于您的使用案例。但我必须更好地保留null,因为它会引发异常,而不是通过null检查验证。

答案 1 :(得分:0)

您可能需要一个try / catch语句。像这样:

try {
    // do process here
} catch (NullPointerException npe) {
    //to do if student is null
}

但请注意,如果try语句中有任何对象,则仍会抛出NullPointerException。希望这会有所帮助。