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.
A importância do tratamento de erros em requisições HTTP
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