Tratamento de erros em Python

Técnicas para gerenciar exceções e depurar código

Aprenda a lidar com exceções e depurar seu código Python de maneira eficaz. Este tutorial aborda blocos try/except, registro em log e técnicas comuns de depuração para melhorar a confiabilidade do seu código.

Programação
Autor
Afiliação
Data de Publicação

5 de fevereiro de 2024

Data de Modificação

29 de abril de 2025

Palavras-chave

Tratamento de erros em Python, Depuração Python, try except, Depuração em Python, Logging em Python

Introdução

O tratamento de erros é um componente crítico da escrita de código Python robusto e confiável. Ao antecipar erros potenciais e gerenciar exceções com elegância, você pode evitar que seus programas travem inesperadamente e fornecer feedback significativo aos usuários ou desenvolvedores. Neste tutorial, você aprenderá como usar blocos try/except para capturar exceções, como usar o módulo de registro integrado para registrar erros e algumas técnicas comuns de depuração para solucionar problemas de maneira eficaz.



Tratamento básico de erros com try/except

A maneira mais simples de lidar com erros em Python é usando um bloco try/except. Isso permite “capturar” exceções e tratá-las de maneira controlada.

Exemplo: capturando um erro de divisão

try:
    result = 10 / 0
except ZeroDivisionError:
    print("Error: Division by zero is not allowed!")

Neste exemplo, a divisão por zero gera um ZeroDivisionError, que é capturado pelo bloco except, impedindo que o programa trave.

Usando vários blocos Except

Você pode lidar com diferentes tipos de exceções com vários blocos except. Isso é útil quando você espera diferentes tipos de erros no seu código.

Exemplo: Lidando com várias exceções

try:
    number = int("abc")  # Isso levantará um ValueError
    result = 10 / number
except ValueError:
    print("Error: The provided value is not a valid integer!")
except ZeroDivisionError:
    print("Error: Division by zero is not allowed!")

Depuração com registro em log

Em vez de simplesmente imprimir erros, muitas vezes é mais útil registrá-los. O módulo logging fornece uma estrutura flexível para emitir mensagens de log a partir de programas Python.

Exemplo: registro de erros

import logging

# Configurar o registro
logging.basicConfig(level=logging.DEBUG, format="%(asctime)s - %(levelname)s - %(message)s")

try:
    value = int("abc")  # Isso levantará um ValueError
except ValueError as e:
    logging.error("ValueError occurred: %s", e)

Neste exemplo, se ocorrer um erro, ele será registrado com um carimbo de data/hora e nível de erro, o que é extremamente útil para depuração em aplicativos maiores.

Depuração com o depurador Python (pdb)

Para uma depuração mais aprofundada, o depurador integrado do Python (pdb) permite que você percorra seu código de forma interativa.

Exemplo: usando pdb

import pdb

def faulty_function():
    a = 10
    b = 0
    pdb.set_trace()  # Inicie o depurador aqui
    result = a / b
    return result

faulty_function()

Ao executar este código, o depurador pausará a execução em pdb.set_trace(), permitindo que você inspecione variáveis e percorra o código para identificar problemas.

Conclusão

O tratamento eficaz de erros e a depuração são habilidades essenciais para qualquer programador Python. Usando blocos try/except, registro e ferramentas como pdb, você pode criar um código que gerencia erros inesperados com elegância e é mais fácil de manter e solucionar. Pratique essas técnicas em seus projetos para criar aplicativos mais robustos e confiáveis.

Leitura adicional

Boa programação e que suas sessões de depuração sejam curtas e produtivas!

Explore mais artigos

Nota

Aqui estão mais artigos da mesma categoria para ajudá-lo a se aprofundar no tópico.

placeholder

placeholder
Nenhum item correspondente
De volta ao topo

Reuso

Citação

BibTeX
@online{kassambara2024,
  author = {Kassambara, Alboukadel},
  title = {Tratamento de erros em Python},
  date = {2024-02-05},
  url = {https://www.datanovia.com/pt/learn/programming/python/advanced/error-handling.html},
  langid = {pt}
}
Por favor, cite este trabalho como:
Kassambara, Alboukadel. 2024. “Tratamento de erros em Python.” February 5, 2024. https://www.datanovia.com/pt/learn/programming/python/advanced/error-handling.html.