假设以下函数:
public void close() throws SQLException {
if (rs != null) { rs.close(); }
if (ps != null) { ps.close(); }
if (connection != null){ connection.close(); }
}
如果我尝试关闭 rs 但它失败了,我的其余代码是否仍会执行(即是否在最后抛出异常),或者它是否会立即中断函数(从而阻止 ps 和连接得到正确关闭)。
最佳答案
如果异常发生在rs.close
,则抛出异常。如果您希望执行那些其他语句,那么您需要使用 finally
。如果您怀疑会抛出另一个异常,您可以创建一个函数,如 closeQuietly
,如果您认为可以安全地忽略这些异常,它会确认但丢弃这些异常。例如(来自这个 answer ),
protected void closeQuietly( Resource resource ) {
try {
if (resource != null) {
resource.close();
}
} catch( Exception ex ) {
log( "Exception during Resource.close()", ex );
}
}
关于java - 什么时候抛出 "throws Exception"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23365869/