Kể từ Java 7, bạn không còn cần phải đóng tài nguyên một cách rõ ràng trong một khối cuối cùng thay vào đó bạn có thể sử dụng cú pháp try -with-resources. Câu lệnh try-with-resources là câu lệnh try khai báo một hoặc nhiều tài nguyên. Tài nguyên là một đối tượng phải được đóng lại sau khi chương trình kết thúc với nó. Câu lệnh try-with-resources đảm bảo rằng mỗi tài nguyên được đóng ở cuối câu lệnh. Bất kỳ đối tượng nào triển khai java.lang.AutoClosable, bao gồm tất cả các đối tượng triển khai java.io.Closable, đều có thể được sử dụng làm tài nguyên.
Giả sử đoạn mã sau:
try( Connection con = null;
Statement stmt = con.createStatement();
Result rs= stmt.executeQuery(QUERY);)
{
count = rs.getInt(1);
}
Nếu có bất kỳ ngoại lệ nào xảy ra, phương thức đóng sẽ được gọi trên mỗi tài nguyên trong số ba tài nguyên này theo thứ tự ngược lại mà chúng được tạo. Nó có nghĩa là phương thức close sẽ được gọi đầu tiên cho ResultSetm, sau đó là Statement và cuối cùng cho đối tượng Connection.
Cũng cần biết rằng bất kỳ ngoại lệ nào xảy ra khi các phương thức đóng tự động được gọi đều bị loại bỏ. Các ngoại lệ bị loại bỏ này có thể được truy xuất bằng phương thức getsuppressed () được định nghĩa trong lớp Throwable .
Nguồn: https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html