我读到catch
try-with-resources 中的块是可选的。我尝试Connection
在 try-with-resources 块中创建一个对象,没有后续catch
块,只是从 eclipse 中获取编译器错误:“自动调用SQLException
引发的未处理异常类型。”close()
由于可以在 try-with-resources 中使用的每个资源都实现AutoCloseable
,因此在调用该方法时可能会引发异常,因此close()
我不明白该catch
子句如何是可选的,因为它不允许我跳过从close()
.
是不是有什么特殊要求,具体实现AutoCloseable
不直接声明其close()
方法中抛出的异常?(例如,使用不抛出任何异常 AutoCloseable
的覆盖)?close() throws Exception
close()
..或者这可能只是一个日食问题?
编辑:这是仍然触发问题的最简单的代码片段:
try (Connection con = dataSource.getConnection()) {
/*...*/
}
关于这是否与使用 JNDI 数据源有关的想法?
提前致谢。