finally Executa independentemente de haver exceção
Última atualização: 2026-09-22
finally Executa independentemente de haver exceção
O bloco finally é executado independentemente de ocorrer ou não uma exceção; é comumente usado para liberar recursos.
| Categoria | Palavras-chave e Instruções |
|---|---|
| Tipo | Palavra-chave / Instrução |
| Versão do Python | all |
📝 Sintaxe
try:
block
finally:
cleanup
▶ Exemplo
Edite o código, clique em Executar e veja o resultado no painel de saída:
Saída:
try
cleanup
🏷️ Palavras-chave / Instruções relacionadas
💡 Casos relacionados
Mais estudos de caso em breve — aguarde.
❓ Perguntas frequentes
QO código no `finally` sempre é executado?
AQuase sempre. Mesmo se `try` tiver um `return` ou levantar exceção, `finally` roda antes de sair. As únicas exceções são casos extremos como o processo ser morto à força, queda de energia ou travamento do interpretador.
QO que acontece se eu escrever `return` dentro de `finally`?
AUm `return` no `finally` sobrescreve o valor retornado pelo bloco `try` — uma armadilha clássica. Não coloque `return` nem levante exceção no `finally`; ele deve apenas fazer limpeza.
Q`finally` e `with` ambos podem limpar recursos. Como escolher?
APara gerenciar recursos como arquivos, locks e conexões, prefira `with` (mais limpo, oficialmente recomendado). Use `finally` para qualquer limpeza que deva rodar como fallback, ex.: `finally: conn.close()`.