gpt4 book ai didi

java - 没有 catch 或 finally block 的嵌套 try block

转载 作者:太空宇宙 更新时间:2023-11-04 12:37:12 27 4
gpt4 key购买 nike

是否可以有一个没有 catch 或 finally block 的嵌套 try block ,并让外部 catch block 处理嵌套 try block 中的异常(如果有)?

类似于:

try (Connection con = ds.getConnection();
PreparedStatement ps = con.prepareStatement(sql);) {

//nested try block without a catch or finally block
try (ResultSet rs = ps.executeQuery();) {
while (rs.next()) {
list.add(rs.getInt("id"));
}
}
} catch (SQLException e) {
e.printStackTrace();
}

最佳答案

如果删除“try”,结果集将不会自动关闭。

try-with-resources 语句有点在隐藏的finally 中执行rs.close。

关闭结果集是一个很好的做法,打开结果集可能会导致问题:java.sql.SQLException: - ORA-01000: maximum open cursors exceeded

此示例中异常捕获的问题是如何区分数据源异常、查询创建异常或查询执行 SQLException?当我的数据源无法提供连接时,我可能会抛出特定的 RuntimeException。

关于java - 没有 catch 或 finally block 的嵌套 try block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37204355/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com