except Ramo de tratamento de exceções
Última atualização: 2026-09-22
except Ramo de tratamento de exceções
except vem logo após try e trata os tipos de exceção correspondentes (pode especificar uma tupla); as pode vincular o objeto de exceção.
| Categoria | Palavras-chave e Instruções |
|---|---|
| Tipo | Palavra-chave / Instrução |
| Versão do Python | all |
📝 Sintaxe
try:
block
except ExceptionType [as name]:
handler
▶ Exemplo
Edite o código, clique em Executar e veja o resultado no painel de saída:
Saída:
div by zero
🏷️ Palavras-chave / Instruções relacionadas
💡 Casos relacionados
Mais estudos de caso em breve — aguarde.
❓ Perguntas frequentes
QUm único `except` pode capturar vários tipos de exceção?
ASim — escreva-os como uma tupla: `except (ValueError, TypeError) as e`. Note que exceções de subclasse devem vir antes da classe pai, senão o ramo pai as captura primeiro.
QCapturei a exceção mas o programa ainda travou. Por quê?
AGeralmente o tipo de exceção não bateu; por exemplo, o código na verdade levantou `TypeError` mas você escreveu `except ValueError`. Além disso, `except Exception` não captura `KeyboardInterrupt` e `SystemExit`, que derivam de `BaseException`.
QO que é `e` em `except ... as e`?
A`e` é o objeto de exceção; `str(e)` fornece a mensagem de erro. Em Python 3, a referência nomeada `e` é automaticamente apagada quando o bloco `except` termina, para não ser mantida por muito tempo e causar problemas.