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.")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:
- Executa o bloco dentro do
try:
Se não houver erro, o código continua normalmente. - Se ocorrer um erro, pula o restante do
try:
O Python vai direto para o blocoexcept. - 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.")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!")2. finally: executa sempre, mesmo com erro
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, useloggingpara 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))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.

