try-with-resources en Java
Limpieza determinista: lo que el try abrió, lo cierra.
import java.io.BufferedReader;
import java.io.StringReader;
import java.io.StringWriter;
// try-with-resources cierra lo que abrió, con éxito o con fallo
try (var reader = new BufferedReader(new StringReader("one\ntwo"))) {
System.out.println(reader.readLine());
System.out.println(reader.readLine());
}
// varios recursos se cierran en orden inverso al de apertura
try (var a = new StringWriter(); var b = new StringWriter()) {
a.write("closed in");
b.write("reverse order");
System.out.println(a + " " + b);
}
Cómo funciona
- Los recursos declarados en los paréntesis se cierran en la llave.
- Con éxito o con excepción, el cierre ocurre igual.
- Varios recursos se cierran en orden inverso al de apertura.
Palabras clave y builtins usados aquí
newtryvar
El intento, en números
- Líneas
- 16
- Caracteres a escribir
- 513
- Tokens
- 110
- Ritmo de tres estrellas
- 90 tpm
Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 73 segundos.
Paso 3 de 3 en Errores y archivos; paso 27 de 29 en Fundamentos del lenguaje.