Tratamento de Erros em Python na prática

Python 30 de Jan de 2024

Texto de Paulo Clemente
Desenvolvedor na Rocketseat

O tratamento eficiente de erros é um aspecto fundamental no desenvolvimento de software, especialmente em uma linguagem versátil como Python. Neste artigo, exploraremos as melhores práticas para lidar com erros e exceções em Python, garantindo que seu código seja robusto, confiável e fácil de manter.

NLW unite | Evento gratuito de programação na prática | Rocketseat
Desafie-se em uma nova tecnologia criando um projeto completo em 3 aulas no maior evento online e gratuito de programação na prática para todos os níveis da Rocketseat.

Antes, vamos entender Erros e Exceções

Antes de mergulhar nas técnicas de tratamento de erros, é crucial entender os tipos comuns de erros em Python:

  1. SyntaxError: Erros de sintaxe ocorrem quando o código não segue a gramática da linguagem.
  2. NameError: Surge quando uma variável ou função não é reconhecida.
  3. TypeError: Acontece ao aplicar uma operação a um tipo inapropriado de objeto.
  4. IndexError e KeyError: Relacionados ao acesso de elementos em coleções, como listas e dicionários, com chaves ou índices inexistentes.
  5. ValueError: Ocorre quando uma função recebe um argumento correto em tipo, mas inadequado em valor.
  6. AttributeError: Surge ao tentar acessar um atributo ou método inexistente.
  7. ZeroDivisionError: Erro ao dividir um número por zero.
NLW unite | Evento gratuito de programação na prática | Rocketseat
Desafie-se em uma nova tecnologia criando um projeto completo em 3 aulas no maior evento online e gratuito de programação na prática para todos os níveis da Rocketseat.

Práticas de tratamento de exceções

Utilizando Try e Except

O método mais básico em Python para o tratamento de exceções é o uso dos blocos try e except.

try:
    # código potencialmente problemático
except TipoDeErro:
    # ação em caso de erro

Exemplo Prático:

try:
    resultado = 10 / 0
except ZeroDivisionError:
    print("Divisão por zero não permitida.")

Tratando Múltiplas Exceções

Para garantir que seu código esteja preparado para lidar com diferentes tipos de erros, você pode definir múltiplos blocos except.

try:
    # código
except ZeroDivisionError:
    # tratamento para ZeroDivisionError
except TypeError:
    # tratamento para TypeError

Blocos Else e Finally

  • Else: Executado se nenhuma exceção for capturada no bloco try.
  • Finally: Sempre executado, independentemente de uma exceção ocorrer ou não.
try:
    # código
except TipoDeErro:
    # tratamento da exceção
else:
    # executado se não houver exceção
finally:
    # sempre executado

Levantando Exceções

Python permite que você também levante suas próprias exceções usando raise.

if condicao_inadequada:
    raise ValueError("Descrição do erro")

Criando Exceções Personalizadas

Para situações específicas, pode ser útil criar exceções personalizadas.

class MinhaExcecao(Exception):
    pass

raise MinhaExcecao("Erro específico")

O tratamento adequado de erros e exceções em Python é essencial para o desenvolvimento de software de qualidade. Ao adotar estas práticas, você não só aumenta a robustez e a confiabilidade do seu código, mas também facilita a manutenção e a compreensão por outros desenvolvedores. Lembre-se, um código que trata exceções de forma eficaz é um marco de um bom desenvolvedor Python.

Marcadores