É importante abordar a questão que existe uma possibilidade do finally não executar. Isso acontece quando deliberadamente ou não encerramos a execução da aplicação no bloco try. No caso utilizando o método exit da classe System. É como se tivéssemos tirado o computador da tomada. Pode ser um ponto óbvio, mas é bom deixar claro. Pois é uma questão que pode cair em entrevistas de emprego, por exemplo, como forma de testar o candidato sobre o conhecimento do fluxo. Portanto o código abaixo não irá executar tanto o bloco catch quanto o finally
public static void main(String[] args ) {
System.out.println("Início do método main");
try {
System.out.println("Executando o bloco try...");
System.exit(1);
}
catch (Exception ex ){
System.out.println("Executando o bloco catch!");
}
finally {
System.out.println("Executando o bloco ")
}
System.out.println("Final do método main");
}