【发布时间】:2017-04-28 01:22:05
【问题描述】:
如果我们在一个方法中打开一个数据库连接,并且我们想确保在出现异常的情况下关闭连接,我们可以将 connection.close() 放在 finally 块中。我的问题是,如果关闭连接也会引发异常怎么办?这段代码应该是什么样子?
try {
conn.open();
//Do stuff with database
} catch (Exception e) {
e.printStackTrace();
} finally {
conn.close(); //Can potentially throw exception.
}
我一直将“抛出异常”作为方法的一部分。示例:
public void doSomethingWithDB() throws Exception {
//Method Body
}
如果在conn.close() 上抛出异常,大多数情况下连接会自动关闭吗?或者流会保持开放?
关于更多上下文,我正在将 Apache Phoenix 与 HBase 一起使用,并遇到了这个问题,因为我试图成为一个更安全的编码器,而不是意外地保持对 HBase 的流开放。
【问题讨论】:
标签: java hadoop hbase try-catch