В этом примере программы 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, соединение "con" и оператор "stmt" автоматически закрываются перед завершением статического метода example(), несмотря на отсутствие какой-либо "уловки", которая улавливает эти ошибка, так что остальная часть кода в main() уверена, что эти два объекта закрыты?
Спасибо.