Como tratar ConnectionError ao fazer requisições HTTP com requests?

O erro ConnectionError no Python ocorre quando uma tentativa de conexão a um servidor remoto falha, geralmente devido a problemas de rede ou indisponibilidade do servidor.

Como tratar ConnectionError ao fazer requisições HTTP com requests?

O erro ConnectionError ocorre no Python quando uma requisição HTTP falha ao tentar estabelecer conexão com um servidor. Esse erro pode ser causado por falta de conexão com a internet, servidor fora do ar ou bloqueios de firewall.

Exemplo do erro

import requests

url = "https://exemplo.com"
response = requests.get(url)

Se o servidor estiver indisponível ou a conexão estiver instável, o Python lançará um requests.exceptions.ConnectionError.

Como tratar ConnectionError

1. Usando try/except para capturar erros

Para evitar que o programa quebre ao encontrar um ConnectionError, utilize um bloco try/except:

import requests

url = "https://exemplo.com"
try:
    response = requests.get(url, timeout=5)
    print(response.text)
except requests.exceptions.ConnectionError:
    print("Erro: Falha na conexão com o servidor.")
except requests.exceptions.Timeout:
    print("Erro: Tempo limite de requisição excedido.")

Isso permite capturar e tratar erros específicos de conexão sem que o programa seja interrompido.

Tratar erros de conexão em aplicações web e scripts que dependem de requisições HTTP é essencial para garantir robustez no software. O uso de tratamento de exceções e a implementação de tentativas automáticas melhoram a experiência do usuário e evitam falhas inesperadas.

Algumas aplicações:

  • Realizar chamadas para APIs externas com estabilidade.
  • Automatizar downloads e coletas de dados da web.
  • Monitorar e testar a disponibilidade de servidores remotos.

Dicas para quem está começando

  • Sempre trate erros de conexão em requisições HTTP.
  • Use timeout para evitar esperas infinitas.
  • Experimente bibliotecas como retrying para reexecutar requisições automaticamente.

Contribuições de Fernando Antunes

Compartilhe este tutorial: Como tratar ConnectionError ao fazer requisições HTTP com requests

Compartilhe este tutorial

Continue aprendendo:

Como corrigir AssertionError ao usar assert em testes

O erro AssertionError no Python ocorre quando uma condição avaliada com assert retorna False, indicando uma falha na validação esperada.

Tutorial anterior

O que significa RuntimeError: maximum recursion depth exceeded

O erro RuntimeError: maximum recursion depth exceeded ocorre quando uma função recursiva ultrapassa o limite permitido pelo Python, causando um estouro de pilha (stack overflow).

Próximo tutorial