A partir de Java 7, ya no es necesario cerrar explícitamente los recursos en un bloque finalmente , sino que puede usar la sintaxis try -with-resources. La declaración try-with-resources es una declaración try que declara uno o más recursos. Un recurso es un objeto que debe cerrarse después de que el programa haya terminado con él. La declaración try-with-resources asegura que cada recurso se cierre al final de la declaración. Cualquier objeto que implemente java.lang.AutoCloseable, que incluye todos los objetos que implementan java.io.Closeable, se puede usar como recurso.
Suponga el siguiente código:
try( Connection con = null;
Statement stmt = con.createStatement();
Result rs= stmt.executeQuery(QUERY);)
{
count = rs.getInt(1);
}
Si ocurre alguna excepción , se llamará al método close en cada uno de estos tres recursos en orden opuesto al que fueron creados. Significa que el método de cierre se llamará primero para ResultSetm, luego la Declaración y al final para el objeto Connection.
También es importante saber que se suprimen las excepciones que ocurren cuando se llama automáticamente a los métodos de cierre. Estas excepciones suprimidas se pueden recuperar mediante el método getsuppressed () definido en la clase Throwable .
Fuente: https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html