日期:2014-05-19  浏览次数:20757 次

问一个捕获异常的问题
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 异常,所以必须捕获