问一个捕获异常的问题
finally {
if (conn != null){
conn.close();
}
}
在finally中如果直接写成这样就会报错,必须加上try/catch才可以,就像这样
finally {
if (conn != null){
try {
conn.close();
} catch (
SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
为什么必须要try/catch呢
------解决方案--------------------
void close()
throws SQLException立即释放此 Connection 对象的数据库和 JDBC 资源,而不是等待它们被自动释放。
在已经关闭的 Connection 对象上调用 close 方法是无操作 (no-op)。
注:Connection 对象在进行垃圾回收时被自动关闭。某些严重的错误也会关闭 Connection 对象。
抛出:
SQLException - 如果发生数据库访问错误
API文档中写得很清楚,会抛出SQLException 异常,所以必须捕获