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

Foto do Leandro Hirt

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:

Artigos recentes

Conteúdo do artigo

    Comece a Aprender Python Hoje!

    Mais de 1.000 alunos já aprenderam Python com a Academify

    © Academify 2020-2025. Todos os direitos reservados.