Игнорирование HTTP статуса ответа
Анти-паттерн
HTTP статус позволяет гарантировать, что запрос был выполнен успешно и сервер вернул ожидаемый ответ. Не проверив HTTP статус ответа, вы рискуете получить неожиданные данные, которые обязательно сломают программу, но уже в другом месте.
Пример¶
Плохо:
def do_something(url, params):
response = requests.get(url, params=params)
...
Хорошо:
def do_something(url, params):
try:
response = requests.get(url, params=params)
response.raise_for_status()
...
except requests.exceptions.HTTPError as e:
logging.error(f'Ошибка HTTPError: {e}')
...
except requests.exceptions.ConnectionError as e:
logging.error(f'Ошибка ConnectionError: {e}')
...