今天在调试程序的时候发现,使用如下代码发现程序报错
try {
conn = DBConnectUtil.open("data1");
st = conn.prepareStatement(sql);
//st.setString(1,userNames);
rs = st.executeQuery();
while (rs.next()){
FrontUser user = new FrontUser();
user.setUserName(rs.getString("uname"));
user.setUserType(rs.getInt("u_type"));
userList.add(user);
}
} catch (Exception e) {
Constants.sqlErrNum++;//错误sql数加一
errorLog.error("select uname,u_type from t_base_user error:", e);
}finally{
DBConnectUtil.close(rs, st, conn);
}
After end of result set 网上看无非就是两个原因
1.resultSet 已经被关闭
2.resultSet 已经到末尾了
仔细看了一下代码,发现这两个原因我都没有犯错,那究竟是什么原因了,仔细一看原来是我debugger的时候调用了一下rs.next()导致的,底端错误
同学们注意啦,debugger的时候会执行一次你监控的代码,所以如果是类似取字符流的,debugger是会改变当前指针位置的
程序调试:避免在debugger中误操作导致的ResultSet异常
本文详细解析了在程序调试过程中遇到的异常问题,特别是当使用debugger时误触ResultSet的next()方法,导致的异常情况及解决策略。通过深入分析,提供了解决此类问题的实用技巧。
8881

被折叠的 条评论
为什么被折叠?



