Alternativa A
No Java, a estrutura de tratamento de exceções é composta por três partes principais: try, catch e finally. O bloco finally possui uma regra específica de execução distinta dos outros dois.
Análise Conceitual
Para entender a resposta, é preciso diferenciar o comportamento de cada bloco:
- Bloco
try: Contém o código que pode falhar e levantar uma exceção. - Bloco
catch: É responsável por capturar e tratar a exceção lançada pelo try. Só é executado se uma exceção ocorrer. - Bloco
finally: É destinado a códigos de limpeza ou finalização (ex: fechar conexão com banco de dados, liberar memória). Sua função é garantir que essas operações ocorram sempre.
A regra fundamental do finally é que ele é executado independentemente de ter ocorrido ou não uma exceção no bloco try.
| Cenário | Execução do catch | Execução do finally |
|---|
| Nenhuma exceção ocorre | Não executa | Executa |
| Exceção ocorre e é tratada | Executa | Executa |
| Exceção ocorre e não é tratada | Não executa (propaga) | Executa |
Portanto, a única alternativa que descreve corretamente o comportamento padrão do finally é a de que ele será executado de qualquer forma.
Alternativa A.