我有一个例程,可以从文本字段中获取一段文本。我用它来搜索数据库中的任何匹配项。如果一个或多个匹配发现它可以正常工作。然而,它没有匹配被发现它在光标位置得到预期的"无效操作"的SQLException。
问题是我想截取该异常并生成我自己的消息。但我似乎无法做到。
以下代码片段是代码的示例,png是结果的结果图像!
//请注意,代码使用不同的字段进行查询,但结果是相同的!
private void btnFnidNextActionPerformed(java.awt.event.ActionEvent evt) {
getQueryFields();
String CMD = "SELECT * FROM TREE_DATABASE WHERE LCASE(first_name) LIKE LCASE('%"+q_first_name+"%') "; // q_first_name is query String!
try {
rs = stmt.executeQuery(CMD);
rs.next();
getResultSet();
setTextFields();
}
//
// Setting breakpoints next two lines and never get a break!
//
catch (SQLException err) {
JOptionPane.showMessageDialog(tree.this, err.getMessage());
}
答案 0 :(得分:2)
或许替换
catch (SQLException err) {
JOptionPane.showMessageDialog(tree.this, err.getMessage());
}
与
catch (SQLException err) {
JOptionPane.showMessageDialog(tree.this, "Your personal error message here");
}
答案 1 :(得分:0)
即使有点晚了......有点不清楚rs
甚至是什么;我只是假设它返回 true
或 false
。当已经到达记录集的末尾时,您无法调用 getResultSet()
。对于这样的单数形式,您可能想要 LIMIT 1
...并且可能使用类似的东西:
if(rs.next()) {
getResultSet();
setTextFields();
}
或者,如果返回多个记录:
while(rs.next()) { ... }