with try convert close catch java java-7 finally try-with-resources

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