【发布时间】:2014-05-16 18:11:52
【问题描述】:
在这个 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 错误时,尽管没有任何“catch”,但在终止静态方法 example() 之前连接“con”和语句“stmt”是否自动关闭捕获这些错误,因此在 main() 的其余代码中确定这两个对象已关闭?
谢谢。
【问题讨论】: