Ab Java 7 müssen Sie die Ressourcen in einem finally- Block nicht mehr explizit schließen , sondern können try verwenden Syntax with-resources verwenden. Die try-with-resources-Anweisung ist eine try-Anweisung, die eine oder mehrere Ressourcen deklariert. Eine Ressource ist ein Objekt, das geschlossen werden muss, nachdem das Programm damit beendet wurde. Die Anweisung try-with-resources stellt sicher, dass jede Ressource am Ende der Anweisung geschlossen wird. Jedes Objekt, das java.lang.AutoCloseable implementiert, einschließlich aller Objekte, die java.io.Closeable implementieren, kann als Ressource verwendet werden.
Nehmen Sie den folgenden Code an:
try( Connection con = null;
Statement stmt = con.createStatement();
Result rs= stmt.executeQuery(QUERY);)
{
count = rs.getInt(1);
}
Wenn eine Ausnahme auftritt, wird die close- Methode für jede dieser drei Ressourcen in umgekehrter Reihenfolge aufgerufen, in der sie erstellt wurden. Dies bedeutet, dass die Methode close zuerst für ResultSetm, dann für die Anweisung und am Ende für das Connection-Objekt aufgerufen wird.
Es ist auch wichtig zu wissen, dass alle Ausnahmen, die auftreten, wenn die close-Methoden automatisch aufgerufen werden, unterdrückt werden. Diese unterdrückten Ausnahmen können mit der in der Throwable- Klasse definierten Methode getsuppressed () abgerufen werden .
Quelle: https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html