Java SQL查询没有结果后处理Nullpointerexception
我有一个基于MVC的Java应用程序,它有三种模型:Java SQL查询没有结果后处理Nullpointerexception,java,nullpointerexception,Java,Nullpointerexception,我有一个基于MVC的Java应用程序,它有三种模型:Room、Student和StudentRoom StudentRoom包含Room和Student的对象 现在我遇到了一个问题,如果我的SQL查询没有返回结果,我会像这样检查学生姓名的值 if(studentRoom.student.name != null) { } 我将得到一个NullPointerException,我不知道如何处理它 我应该设置Student.name=“”因为我的查询没有结果 if(studentRoom != n
Room
、Student
和StudentRoom
StudentRoom
包含Room
和Student
的对象
现在我遇到了一个问题,如果我的SQL查询没有返回结果,我会像这样检查学生姓名的值
if(studentRoom.student.name != null) {
}
我将得到一个NullPointerException
,我不知道如何处理它
我应该设置Student.name=“”代码>因为我的查询没有结果
if(studentRoom != null && studentRoom.student != null && studentRoom.student.name != null){
//.. Access student
}
上面的解决方案看起来有点奇怪。最好使用getter/setter
方法,而不是直接访问对象
除此之外,您还可以在studentRoom
中定义类似isStudentAvailable()
的方法来检查其中是否包含Student
我应该设置Student.name=“”;既然我的查询没有结果
这完全取决于您的用例。但是我必须说,最好保持它null
,因为它将引发异常,而不是通过null
检查验证。您可能需要一个try/catch语句。大概是这样的:
try {
// do process here
} catch (NullPointerException npe) {
//to do if student is null
}
但是请注意,如果try语句中有任何对象,仍然会抛出NullPointerException
。希望这能有所帮助。如果SQL查询没有结果,您不应该首先尝试获取学生姓名。您应该尝试防止NPE发生,例如,初始化用于将结果存储到空集合的数据结构,NullPointerException通常是编程错误的标志,不应被捕获。相反,您应该尝试修复导致NPE的根本原因