ExpertiDict

Java · Essencial · Inglês · Técnico

finally

/ˈfaɪnəli/palavra-chave

Bloco que roda depois de try e catch, haja ou não exceção, usado para liberar recursos. Só deixa de rodar se a JVM encerrar antes, por exemplo com System.exit.

Onde usar

Aparece em limpeza de conexões e arquivos, hoje quase sempre trocada por try-with-resources. Em review: 'return dentro de finally engole a exceção'.

Em código

try {
  throw new IllegalStateException();
} finally {
  System.out.println("sempre roda");
}

Exemplos

The finally block runs even if an exception is thrown.

O bloco finally roda mesmo que uma exceção seja lançada.

Never put a return inside a finally block.

Nunca coloque um return dentro de um bloco finally.

Cuidado

Evite return ou throw dentro do finally: ele substitui o resultado do try e esconde a exceção original.

Veja também

Todos os termos de Java