【发布时间】:2020-04-17 12:52:22
【问题描述】:
所以我有一个问题。由于“NullpointExeption”,我的 RPC 调用将失败。这意味着一列包含 null 值。这是有意为之,因为我会在某个时候用值填充此列。如何允许 Java 代码通过错误处理忽略/或允许此错误发生??
@Override
public List <BreakRegistered> getAllRegisteredBreaks() throws IllegalArgumentException {
List<BreakRegistered> resultsfromquery = null;
ResultSet resultSet = null;
try {
//Execute query kaldes på resultsetter, fordi der kun nedhentes data
resultSet = getAllEmployeesBreaks.executeQuery();
resultsfromquery = new ArrayList<BreakRegistered>();
while (resultSet.next()) {
resultsfromquery.add(new BreakRegistered(
resultSet.getTimestamp("time").toString(),
resultSet.getTimestamp("checkedOut").toString(), //Error occurs HERE!
resultSet.getString("navn"),
resultSet.getInt("medarbejderID")));
}
} catch (SQLException sqlException) {
throw new IllegalArgumentException(" \"getBreaks\" fejlede");
} finally {
try {
resultSet.close();
} catch (SQLException sqlException) {
sqlException.printStackTrace();
close();
}
}
return resultsfromquery;
}
【问题讨论】:
-
我很好奇您是如何发现自己处于执行 SQL 的水平但从未遇到过
NullPointerException的?特别是因为你已经有一个catch块,你可以复制它的逻辑? -
在调用 toString 方法之前,检查它是否为空。如果为null,则转到下一个,如果不是,使用toString
-
resultSet.getTimestamp("checkedOut")是否返回null。你对字符串"null"还好吗?如果这两个答案都是肯定的,那么使用String.valueOf(resultSet.getTimestamp("checkedOut"))。 -
@JohannesKuhn,你真的救了我。您的评论简单快捷地解决了我的愚蠢问题。非常感谢。我确实有问题。我的数据表现在在列中将“Null”打印为文本。我该如何打印“”。我可以在服务器方法中添加一些 if 逻辑吗?
-
查看下面的答案。适应其中之一。 (显然,我的第二个问题的答案是否定的,但至少它回答了第一个问题)
标签: java error-handling syntax nullpointerexception