Como Usar Try Except em Python: Guia Completo de Tratamento de Erros

Nesta aula, vou te mostrar, de forma simples e prática, como usar try except em Python para fazer o tratamento de erros e evitar que o usuário veja mensagens confusas.

O try except é a estrutura do Python para tratamento de erros. O código que pode falhar fica dentro do try; se ocorrer uma exceção, o Python pula para o bloco except, evitando que o programa quebre. O ideal é capturar exceções específicas, como FileNotFoundError ou ZeroDivisionError, e você ainda pode usar else e finally.

Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!

O que você aprende neste vídeo

Resposta rápida: A aula ensina o tratamento de erros em Python com try e except, usando um arquivo inexistente e uma divisão por zero. Você aprende a capturar FileNotFoundError e ZeroDivisionError pelo nome, exibir a mensagem com as erro, deixar o except genérico por último e usar else e finally. Evite except: pass, que esconde o erro.

Neste vídeo (19 min):

  • 2:05 - A lógica do try/except: tentar executar um trecho e, se falhar, desviar para outro bloco em vez de parar o programa com o traceback
  • 3:05 - print(a / b) com b = 0 dispara o ZeroDivisionError, uma exceção que o Python já traz pronta
  • 5:05 - Leitura de um arquivo .txt com with open falhando com FileNotFoundError por causa do nome escrito errado
  • 5:35 - Primeiro try com except genérico que troca o erro padrão por uma mensagem própria
  • 6:52 - O risco do except: pass: o erro some sem aviso e, num código de dezenas de linhas, não dá para saber onde está o problema
  • 9:00 - A lista de exceções embutidas na documentação do Python, de ZeroDivisionError a FloatingPointError
  • 10:45 - except FileNotFoundError as erro: captura só o arquivo não encontrado, e print(erro) mostra a mensagem original
  • 12:05 - O except genérico acima do específico gera SyntaxError: ele vai por último, porque o Python para no primeiro bloco que corresponde
  • 14:20 - except ZeroDivisionError as erro: tratando a divisão de a = 10 por zero
  • 15:50 - else roda só quando nenhum except foi acionado, e imprime sem erros quando a divisão funciona
  • 16:30 - finally executa sempre, com ou sem exceção: numa automação com Selenium, é onde se fecha a janela do navegador

Trechos do vídeo:

  • Tudo o que está dentro do try é tentado; se uma exceção acontece, o Python pula para o except em vez de encerrar o programa com o traceback
  • Um except sem tipo tem de vir depois dos específicos: fora dessa ordem o Python acusa SyntaxError, e entre vários blocos vale o primeiro que corresponde à exceção
  • except: pass faz o erro desaparecer sem deixar rastro, e num programa com dezenas de linhas isso transforma um defeito simples numa busca às cegas
  • Escrever except ZeroDivisionError as erro guarda a exceção numa variável, e print(erro) mostra a mensagem original do Python sem interromper o programa
  • O else só executa quando nenhuma exceção ocorreu, enquanto o finally executa sempre, o lugar certo para fechar a janela do navegador aberta pelo Selenium

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

Como Usar Try e Except no Python

O bloco try except em Python é uma das principais ferramentas para fazer o tratamento de erros e evitar que seus programas quebrem de forma inesperada.

Neste artigo, vou te mostrar, de forma simples e prática, como usar try except em Python, com exemplos reais e dicas valiosas para você deixar seus códigos mais robustos e profissionais.

O que é Try Except em Python?

Quando você executa um código em Python, é bem comum encontrar erros: seja ao tentar abrir um arquivo que não existe ou ao fazer uma conta que não dá certo, como dividir um número por zero.

Esses erros, chamados de exceções, podem interromper a execução do seu programa e mostrar mensagens confusas para o usuário.

O bloco try except serve justamente para isso: capturar essas exceções e permitir que você trate os erros de forma personalizada, evitando que o programa pare de funcionar ou que o usuário veja mensagens técnicas que ele não vai entender.

Como funciona o bloco Try Except em Python?

A estrutura básica do try except é bem simples:

Python
try:
    # código que pode gerar um erro
except:
    # código a ser executado caso ocorra um erro

O Python tenta executar o que está dentro de try. Se acontecer algum erro, ele pula automaticamente para o bloco except.

Ícone PythonPython Impressionador

Você vai aprender a linguagem de Programação que mais cresce no Mundo para fazer automações incríveis, desenvolver sites, fazer análises de dados, trabalhar com Ciência de Dados, Inteligência Artificial, mesmo que você nunca tenha tido nenhum contato com Programação na vida.

Começar agoraSeta para a direita
Fundo PythonTelas Python
Luz Python

Exemplo prático de Try Except: FileNotFoundError em Python

Vamos ver um exemplo clássico: tentar abrir um arquivo que não existe:

Python
with open('arquivo.txt', 'r') as file_object:
    texto = file_object.read()
    print(texto)

Aqui, teremos o erro FileNotFoundError (arquivo não encontrado).

erro FileNotFoundError

Agora, usando try except, podemos tratar esse erro e mostrar uma mensagem mais amigável.

Python
try:
    with open('arquivo.txt', 'r') as file_object:
        texto = file_object.read()
        print(texto)
except FileNotFoundError as error:
    print(f"Erro: {error}")

Assim, evitamos que o programa quebre e ainda mostramos uma mensagem clara para o usuário.

erro FileNotFoundError no try except

Exemplo de Try Except com ZeroDivisionError em Python

Outro erro clássico que podemos ter é de divisão por zero.

Python
a = 10
b = 0

try:
    print(a / b)
except ZeroDivisionError as error:
    print(f"Erro: {error}")

Aqui, o Python evita quebrar o programa e exibe uma mensagem avisando sobre o erro: Erro: division by zero.

Por que evitar usar except genérico?

Por que evitar usar except genérico?

Embora seja possível usar apenas except: para capturar qualquer erro, isso não é recomendado.

Veja este exemplo:

Python
try:
    with open ('arquivo.txt', 'r') as file_object:
	    texto = file_object.read()
	    print(texto)
except:
	print('Deu ruim')
Exemplo de Try Except com ZeroDivisionError em Python

Por que evitar? Porque isso pode acabar escondendo erros importantes, dificultando muito a identificação e correção de problemas no seu código.

Sempre que possível, capture exceções específicas, como FileNotFoundError ou ZeroDivisionError. Assim, o tratamento é mais preciso e seguro.

OBS: Caso você queira verificar todos os erros pode clicar aqui para ser direcionado para a página de documentação do Python onde vai conseguir visualizar esses possíveis erros.

Como usar else e finally no Try Except em Python

Além do except, o Python permite usar as cláusulas else e finally dentro do bloco try except para deixar o tratamento ainda mais completo:

Python
a = 10
b = 0

try:
    print(a / b)
except ZeroDivisionError as error:
    print(f"Erro: {error}")
else:
    print("Sem erros!")
finally:
    print("Aqui sempre vai executar!")

O else só é executado se não houver erro. Já o finally executa sempre, independentemente de ter erro ou não.

Como usar else e finally no Try Except em Python

Quando usar o finally em Python?

Sempre que você precisar garantir que uma ação aconteça, mesmo que tenha ocorrido um erro. Por exemplo: fechar um arquivo, encerrar uma conexão com banco de dados ou liberar recursos do sistema.

Como capturar múltiplas exceções com Try Except

Você também pode capturar múltiplos tipos de exceção no mesmo bloco de código, usando vários except.

Olha só um exemplo mais completo:

Python
try:
    num = int(input("Digite um número: "))
    resultado = 10 / num
except ValueError:
    print("Erro: valor inválido! Digite um número.")
except ZeroDivisionError:
    print("Erro: não divida por zero!")
else:
    print(f"Resultado: {resultado}")
finally:
    print("Fim da execução.")

Nesse exemplo cobrimos tanto o erro de valor inválido quanto de divisão por zero e o programa continua funcionando, independentemente do que o usuário digitar.

Como capturar múltiplas exceções com Try Except

Como criar exceções personalizadas com Try Except em Python

Além de tratar os erros padrão, você também pode criar suas próprias exceções, quando quiser definir regras específicas para o seu sistema.

Veja como fazer isso:

Python
class ErroPersonalizado(Exception):
    pass

try:
    raise ErroPersonalizado("Erro criado por você!")
except ErroPersonalizado as erro:
    print(f"Erro personalizado: {erro}")
Como criar exceções personalizadas com Try Except em Python

Isso é muito útil para casos em que o seu código precisa de regras de validação bem específicas.

Boas práticas no tratamento de erros com Try Except

Para usar try except de forma eficiente e profissional, siga estas boas práticas:

  • Capture exceções específicas, sempre que possível.
  • Use else para código que deve rodar somente se não houver erro.
  • Use finally para ações que devem acontecer independente do erro.
  • Evite except: genérico, pois ele captura todos os erros e pode mascarar problemas.
  • Utilize logging para registrar erros, especialmente em aplicações maiores.

Por que usar Try e Except no Python?

O tratamento de exceções é fundamental para criar programas mais robustos, seguros e fáceis de usar.

Sem ele:

  • O programa pode quebrar a qualquer erro.
  • O usuário vê mensagens confusas.
  • Fica mais difícil identificar e resolver problemas.

Com ele:

  • O programa continua funcionando, mesmo com erros.
  • O usuário recebe mensagens claras.
  • O código se torna mais profissional.

Dúvidas Comuns sobre Try Except em Python

Quando devo usar Try Except?

Sempre que existir uma chance real de um erro acontecer e você quiser tratar isso de forma controlada, sem quebrar o programa.

Posso capturar múltiplas exceções?

Sim! Basta usar vários blocos except ou agrupar exceções numa tupla.

É obrigatório usar else e finally?

Não. Eles são opcionais, mas podem ser muito úteis para organizar melhor o fluxo do código.

Perguntas frequentes

1. O que é uma exceção em Python?

Uma exceção é um erro que ocorre durante a execução de um programa em Python, como tentar abrir um arquivo que não existe (FileNotFoundError) ou dividir um número por zero (ZeroDivisionError). Sem tratamento, a exceção interrompe o programa e mostra mensagens técnicas. O bloco try except captura essas exceções e permite tratá-las com elegância.

2. Por que evitar usar except genérico?

Um except genérico captura qualquer erro, o que pode esconder problemas importantes e dificultar a identificação de bugs no código. O ideal é sempre capturar exceções específicas, como FileNotFoundError ou ValueError. Assim, o tratamento fica mais preciso e você sabe exatamente qual erro está lidando em cada situação.

3. Para que servem o else e o finally no try except?

O else executa apenas quando nenhum erro acontece no bloco try, sendo útil para o código que só deve rodar em caso de sucesso. Já o finally executa sempre, com ou sem erro. Ele é ideal para ações de encerramento, como fechar um arquivo, encerrar uma conexão com banco de dados ou liberar recursos.

4. Como criar uma exceção personalizada em Python?

Para criar sua própria exceção, defina uma classe que herda de Exception, como class ErroPersonalizado(Exception): pass. Depois, você pode dispará-la com raise ErroPersonalizado('mensagem') e tratá-la em um bloco except. Isso é útil quando o seu sistema precisa de regras de validação específicas, com mensagens de erro personalizadas para cada situação.

Conclusão – Domine o Try Except e melhore seus códigos!

Ao longo deste artigo, você viu como o try except em Python é uma ferramenta essencial para garantir que seus programas sejam mais robustos, profissionais e preparados para imprevistos.

Aprendemos como capturar e tratar erros específicos, como usar else e finally para ter mais controle sobre o fluxo e como criar exceções personalizadas para cenários mais complexos.

Agora é a sua vez: pratique os exemplos que mostramos aqui, experimente criar seus próprios tratamentos de erro e veja como seu desenvolvimento em Python evolui com mais confiança e qualidade.

Quer continuar aprendendo? Confira nossos outros conteúdos sobre Python ou inscreva-se no nosso Curso Python Impressionador, a oportunidade ideal para dominar a linguagem que mais cresce no mundo e ampliar suas possibilidades na área!

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Posts mais recentes de Python

Posts mais recentes da Hashtag Treinamentos