convert - try-with-resources java
¿Se cierran los recursos antes o después de la final? (1)
En el intento con recursos de Java 7, no sé qué orden se produce finalmente el bloqueo y el cierre automático. Cual es el orden
BaseResource b = new BaseResource(); // not auto-closeable; must be stop''ed
try(AdvancedResource a = new AdvancedResource(b)) {
}
finally {
b.stop(); // will this happen before or after a.close()?
}
El recurso se cierra antes de la captura o finalmente se bloquea. Ver este tutorial .
Una instrucción try-with-resources puede tener un catch y, finalmente, bloquea como una declaración try normal. En una declaración de prueba con recursos, cualquier captura o bloque final se ejecuta después de que se hayan cerrado los recursos declarados.
Para evaluar esto es un código de ejemplo:
class ClosableDummy implements Closeable {
public void close() {
System.out.println("closing");
}
}
public class ClosableDemo {
public static void main(String[] args) {
try (ClosableDummy closableDummy = new ClosableDummy()) {
System.out.println("try exit");
throw new Exception();
} catch (Exception ex) {
System.out.println("catch");
} finally {
System.out.println("finally");
}
}
}
Salida:
try exit
closing
catch
finally