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.

CategoriaPalavras-chave e Instruções
TipoPalavra-chave / Instrução
Versão do Pythonall

📝 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
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()`.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%