【发布时间】:2018-08-01 14:54:15
【问题描述】:
我们到处都看到 Statement.close() 通过吃掉它抛出的异常来“处理”。什么情况下它可以首先抛出异常?对于创建此语句的连接意味着什么?
换句话说,statement.close() 什么时候抛出异常,连接是否仍然“健康”可以用于创建新语句?
另外,如果 resultset.close() 抛出,会发生什么?
【问题讨论】:
-
这取决于您使用的驱动程序。除非驱动程序记录了
close()抛出异常时要采取的措施,否则我会将其记录为调试并尝试得出自己的结论或忽略它。 -
"无处不在我们看到 Statement.close() 是通过吃掉异常来“处理”的” 非凡的主张需要非凡的证据。我只吞下/忽略玩具应用程序中的异常,或者如果我确定忽略它是安全的,否则至少我会记录它,或将其包装在应用程序特定的异常中(通常是运行时,有时检查)。
标签: java database jdbc database-connection