Fechar recurso automaticamente
try (var reader = Files.newBufferedReader(caminho)) {
return reader.lines().toList();
}Fecha na ordem inversa da abertura, inclusive quando o corpo lança.
cheat/excecoes
Falhar de forma previsível e sempre fechar o que abriu.
try (var reader = Files.newBufferedReader(caminho)) {
return reader.lines().toList();
}Fecha na ordem inversa da abertura, inclusive quando o corpo lança.
public class NaoEncontrado extends RuntimeException {
public NaoEncontrado(long id) {
super("registro não encontrado: " + id);
}
}catch (SQLException e) {
throw new FalhaNoRepositorio("ao salvar pedido", e);
}Sem passar `e`, o stack trace da origem some e o log vira adivinhação.
String texto = Files.readString(Path.of("dados.txt"));