Como Usar o Try Except (Tratamento de Erros) em Python

Atualizado em: 10/03/2026
Tempo de leitura: 6 minutos
logotipo do Python em azul e amarelo ao lado das palavras 'try except' em fonte amarela sobre um fundo azul-texturizado

Ao programar em Python, é comum encontrar erros durante a execução do código. Às vezes, eles acontecem por motivos simples, como digitar algo errado, e outras vezes por situações imprevisíveis, como tentar abrir um arquivo que não existe.
É aí que entra o try except, um dos recursos mais importantes da linguagem quando o assunto é tratamento de erros.

Neste artigo, você vai entender o que é o try except, como ele funciona, e verá exemplos práticos para aplicar no seu próprio código. Tudo de forma simples, direta e sem jargões técnicos.


O que é o Try Except em Python

O try except é uma estrutura usada para lidar com erros (ou exceções) durante a execução de um programa.
Ele permite que o Python tente executar um trecho de código (try) e, caso ocorra um erro, trate esse erro de forma controlada (except).

Sem o try except, o programa para de funcionar assim que encontra um erro.
Com ele, o programa continua rodando, mesmo quando algo dá errado.

Exemplo simples:

Python

try:
    numero = int(input("Digite um número: "))
    print(f"O número digitado foi {numero}")
except:
    print("Você não digitou um número válido.")
Pronto para executar

Nesse exemplo, se o usuário digitar algo que não é um número, o programa não quebra.
Em vez disso, mostra uma mensagem amigável ao usuário.


Como funciona o Try Except passo a passo

O Python segue uma sequência lógica ao usar o try except:

  1. Executa o bloco dentro do try:
    Se não houver erro, o código continua normalmente.
  2. Se ocorrer um erro, pula o restante do try:
    O Python vai direto para o bloco except.
  3. Executa o bloco except:
    Aqui você define o que fazer quando o erro acontece.

Esse controle evita que o programa feche de forma inesperada, tornando o código mais profissional e confiável.


Tratando tipos específicos de erros

Nem todo erro é igual.
Python possui diferentes tipos de exceções, como ValueError, ZeroDivisionError, FileNotFoundError e várias outras.

Você pode tratar cada tipo de erro separadamente para ter mensagens mais específicas:

Python

try:
    x = int(input("Digite o numerador: "))
    y = int(input("Digite o denominador: "))
    resultado = x / y
    print("Resultado:", resultado)
except ZeroDivisionError:
    print("Erro: não é possível dividir por zero.")
except ValueError:
    print("Erro: digite apenas números inteiros.")
Pronto para executar

Dessa forma, o usuário entende exatamente o que deu errado.


O uso do else e finally

Além do try e except, a estrutura pode incluir dois blocos opcionais: else e finally.

1. else: executa se nenhum erro ocorrer

Python

try:
    numero = int(input("Digite um número positivo: "))
except ValueError:
    print("Erro: valor inválido.")
else:
    print("Tudo certo, número aceito!")
Pronto para executar

2. finally: executa sempre, mesmo com erro

Python
try:
    arquivo = open("dados.txt")
    print("Arquivo aberto com sucesso!")
except FileNotFoundError:
    print("Erro: arquivo não encontrado.")
finally:
    print("Fim da execução.")

O finally é muito útil para fechar conexões, arquivos ou liberar recursos do sistema.


Por que usar o Try Except?

Alguns motivos tornam o try except indispensável:

  • Evita travamentos: o programa continua mesmo com erros.
  • Melhora a experiência do usuário: mensagens claras em vez de erros técnicos.
  • Facilita a depuração: ajuda a identificar onde o erro ocorreu.
  • Torna o código mais robusto: útil em automações, sistemas web e scripts complexos.

Sem tratamento de erros, qualquer falha simples pode derrubar o sistema.


Dicas práticas para usar Try Except corretamente

  • Evite except: genérico, ele captura qualquer erro, o que pode esconder problemas sérios.
    Prefira capturar tipos específicos (ValueError, TypeError, etc.).
  • Use mensagens informativas:
    Explique o que deu errado de forma compreensível para o usuário.
  • Combine com logs:
    Em sistemas maiores, use logging para registrar erros sem mostrar ao usuário.
  • Nunca abuse:
    Try except não deve substituir boas validações de entrada.

Exemplo prático: programa de divisão segura

Python

def dividir(a, b):
    try:
        resultado = a / b
    except ZeroDivisionError:
        return "Erro: divisão por zero!"
    except TypeError:
        return "Erro: use apenas números."
    else:
        return f"Resultado: {resultado:.2f}"
    finally:
        print("Operação finalizada.")

print(dividir(10, 2))
print(dividir(10, 0))
print(dividir("dez", 2))
Pronto para executar

Saída:

Resultado: 5.00
Operação finalizada.
Erro: divisão por zero!
Operação finalizada.
Erro: use apenas números.
Operação finalizada.

Observe como o finally é executado em todas as chamadas, mesmo quando há erro.


Aplicações reais do Try Except

O tratamento de erros é usado em praticamente todos os projetos Python.
Veja alguns exemplos do mundo real:

  • Ao lidar com arquivos: verificar se um arquivo existe antes de abri-lo.
  • Em conexões com internet: tratar erros de rede ou tempo de resposta.
  • Em automações: continuar a execução mesmo que um item falhe.
  • Em APIs: lidar com respostas inválidas sem parar o sistema.

Conclusão

Usar o try except em Python é essencial para criar programas mais seguros e confiáveis.
Com ele, é possível prever falhas e reagir de forma controlada, sem interromper o funcionamento do código.

Sempre que houver risco de erro, pense em como tratá-lo de maneira amigável.
Assim, você torna seu programa mais estável e melhora a experiência de quem o utiliza.


Perguntas Frequentes (FAQ)

1. O que é try except em Python?
É uma estrutura usada para tratar erros e evitar que o programa pare ao encontrar um problema.

2. Para que serve o try em Python?
O bloco try tenta executar um código que pode gerar erro.

3. Para que serve o except?
O except trata o erro, mostrando uma mensagem ou tomando uma ação.

4. Posso usar mais de um except?
Sim, você pode tratar diferentes tipos de erro separadamente.

5. O que acontece se não tiver erro no try?
O bloco except é ignorado e o código segue normalmente.

6. O que faz o finally?
Executa sempre, com ou sem erro, ideal para liberar recursos.

7. É obrigatório usar else ou finally?
Não, eles são opcionais, mas podem ajudar na clareza do código.

8. O que é ValueError?
É um tipo de erro que ocorre quando o valor fornecido é inválido.

9. Posso deixar só “except:” sem tipo de erro?
Pode, mas não é recomendado, pois esconde erros inesperados.

10. O try except deixa o programa mais lento?
Não, o impacto no desempenho é mínimo e vale a pena pela segurança.

Compartilhe:

Facebook
WhatsApp
Twitter
LinkedIn

Conteúdo do artigo

    Artigos relacionados

    Resolução de Erros
    Foto do Leandro Hirt

    Erro ModuleNotFoundError? Descubra e corrija rápido

    Você está escrevendo seu código, concentrado na lógica, e de repente o terminal exibe uma mensagem em vermelho: ModuleNotFoundError: No

    Ler mais

    Tempo de leitura: 9 minutos
    19/03/2026
    Resolução de Erros
    Foto do Leandro Hirt

    RecursionError no Python? Resolva em 2 minutos

    Você está escrevendo seu código, tudo parece perfeito, mas ao executar, o terminal exibe uma mensagem assustadora: RecursionError: maximum recursion

    Ler mais

    Tempo de leitura: 10 minutos
    17/03/2026
    Resolução de Erros
    Foto do Leandro Hirt

    Descubra como criar enums em Python e evitar erros

    Você já se viu em uma situação em que precisava representar um conjunto fixo de opções no seu código, como

    Ler mais

    Tempo de leitura: 9 minutos
    12/03/2026
    Resolução de Erros
    Foto do Leandro Hirt

    Como detectar vazamento de memória em Python

    O desenvolvimento de software moderno exige que programadores estejam atentos não apenas à lógica de negócio, mas também à eficiência

    Ler mais

    Tempo de leitura: 10 minutos
    11/03/2026
    Resolução de Erros
    Foto do Leandro Hirt

    Como usar cProfile para identificar gargalos no Python

    Você já sentiu que seu código está rodando mais devagar do que deveria, mas não consegue apontar exatamente onde está

    Ler mais

    Tempo de leitura: 10 minutos
    05/03/2026
    Resolução de Erros
    Foto do Leandro Hirt

    MemoryError no Python: Como resolver em minutos

    Você está executando um script, processando um grande volume de dados ou carregando um dataset pesado e, de repente, o

    Ler mais

    Tempo de leitura: 10 minutos
    03/03/2026