Gabarito disponível
Resolução comentada
O bloco finally executa haja ou não exceção no try.
Segundo Deitel, o bloco finally é executado independentemente de ter ocorrido exceção no try correspondente. Por isso é usado para liberar recursos.
Análise das alternativas
A) Errada: o finally executa mesmo se um catch lançar exceção. C) Errada: o finally também executa quando o try é encerrado por break. D) Errada: executa também sem exceção. E) Errada: o finally é opcional (embora, quando presente, venha depois dos catch).
Referência: Deitel & Deitel (2016), Java: Como Programar, tratamento de exceções.
Resolução comentada do VaiConcursos.