在这个 Java 程序示例中:
package test;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.Statement;
public class Test
{
private static void example(){
String url = "jdbc:oracle:thin:@//localhost:7856/xe";
String user = "user";
String password = "pass";
try(Connection con = DriverManager.getConnection(url, user, password);
Statement stmt = con.createStatement()){
throw new OutOfMemoryError("Error");
}catch (SQLException e){
System.err.println("SQLException");
}
}
public static void main(String [] args){
try{
example();
}catch (OutOfMemoryError e){
System.err.println("OutOfMemoryError");
}
// Rest of code here...
}
}
当在静态方法 example() 的主体中抛出 OutOfMemoryError 错误时,在终止静态方法 example() 之前连接“con”和语句“stmt”是否自动关闭,尽管没有任何“catch”捕获这些错误所以在 main() 的其余代码中确定这两个对象已关闭?
谢谢。