🛑 Твой код завис навсегда?
Знаете ли вы, что по умолчанию библиотека requests ждет ответа от сервера бесконечно?
Если сервер, к которому вы обращаетесь, "упал" или просто завис, ваш Python-скрипт тоже встанет и будет висеть вечно, пока вы не убьете процесс вручную. В продакшене (да и в пет-проектах) это недопустимо! 🚫
✅ Решение: Всегда используйте timeout
Параметр timeout указывает, сколько секунд ждать ответа, прежде чем выбросить ошибку и продолжить работу.
Пример безопасного кода:
import requests
from requests.exceptions import Timeout, ConnectionError
url = "https://httpbin.org/delay/5" # Сервер ответит через 5 сек
try:
# Ставим таймаут 2 секунды.
# Если сервер не ответит за 2 сек — скрипт не зависнет!
response = requests.get(url, timeout=2)
response.raise_for_status() # Проверка на ошибки 4xx/5xx
print("Успех:", response.json())
except Timeout:
print("⏰ Ошибка: Сервер отвечает слишком долго!")
except ConnectionError:
print("🔌 Ошибка: Нет интернета или сайт недоступен.")
except Exception as e:
print(f"Что-то пошло не так: {e}")
💡 Совет: Хорошей практикой считается ставить таймаут в диапазоне 3–10 секунд для обычных запросов.
Проверьте свои старые проекты, есть ли там timeout? Если нет, самое время добавить! 👨💻
Подписывайтесь на канал 👉 @python_of