结果集rs,状态pst,以及连接conn;均要放入finally执行;
保险起见,在关闭之前判断这些对象是否为空,防止对象为空造成关闭异常;
finally {
try {
if(rs!=null){
rs.close();
}
if(pst!=null){
pst.close();
}
if(conn!=null){
conn.close();
}
} catch (Throwable e) {
log.error("error:" , e);
}
}
例如:红色字体部分,若rs不判断则为空,关闭时异常,程序就进入了蓝色字体位置,pst和conn的关闭就被跳过了;
实际情况中rs为空的现象是很容易产生的。