ใน Java 7 คุณไม่จำเป็นต้องปิดรีซอร์สอย่างชัดเจนอีกต่อไปในที่สุดบล็อกแทนคุณสามารถใช้ไวยากรณ์try -with-resources คำสั่ง try-with-resources คือคำสั่ง try ที่ประกาศทรัพยากรอย่างน้อยหนึ่งรายการ ทรัพยากรเป็นวัตถุที่ต้องปิดหลังจากโปรแกรมเสร็จสิ้น คำสั่ง try-with-resources ช่วยให้มั่นใจได้ว่าทรัพยากรแต่ละรายการถูกปิดท้ายคำสั่ง อ็อบเจ็กต์ใด ๆ ที่ใช้ java.lang.AutoCloseable ซึ่งรวมถึงอ็อบเจ็กต์ทั้งหมดที่ใช้ java.io.Closeable สามารถใช้เป็นรีซอร์สได้
สมมติรหัสต่อไปนี้:
try( Connection con = null;
Statement stmt = con.createStatement();
Result rs= stmt.executeQuery(QUERY);)
{
count = rs.getInt(1);
}
หากมีข้อยกเว้นเกิดขึ้นเมธอดปิดจะถูกเรียกใช้ทรัพยากรทั้งสามนี้ตามลำดับที่ตรงกันข้ามกับที่สร้างขึ้น หมายความว่าเมธอดปิดจะถูกเรียกก่อนสำหรับ ResultSetm จากนั้นคำสั่งและในตอนท้ายสำหรับอ็อบเจ็กต์การเชื่อมต่อ
สิ่งสำคัญคือต้องทราบว่าข้อยกเว้นใด ๆ ที่เกิดขึ้นเมื่อมีการเรียกวิธีการปิดโดยอัตโนมัติจะถูกระงับ ข้อยกเว้นที่ถูกระงับเหล่านี้สามารถเรียกคืนได้โดยเมธอด getsuppressed () ที่กำหนดไว้ในคลาสThrowable
ที่มา: https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html