Проблемы с перехватом исключений запросов - PullRequest
0 голосов
/ 06 мая 2020

Я создаю запрос на удаление для веб-сервера и пытаюсь перехватить исключения, как показано ниже:

 try:
    response = req.delete(path, auth=HTTPBasicAuth(config.user(), config.password()), params=params, headers=headers, verify=True)
except requests.HTTPError as he:
    raise SystemExit(he)
except requests.ConnectionError as ce:
    raise SystemExit(ce)
except requests.URLRequired as ue:
    raise SystemExit(ue)
except requests.Timeout as te:
    raise SystemExit(te)
except requests.RequestException as err:
    print('Undefined error: ', err)

print(response.status_code)

Но удаление не обрабатывается и response.status_code печатает 400, но обработка ошибок не работает. Есть идеи, почему там не работает обработка ошибок?

1 Ответ

0 голосов
/ 06 мая 2020

Если вы хотите перехватывать HTTP-ошибки (например, 401 Unauthorized) для создания исключений, вам необходимо вызвать Response.raise_for_status. Это вызовет ошибку HTTPError, если ответом была ошибка http.

try:
    response = req.delete(path, auth=HTTPBasicAuth(config.user(), config.password()), params=params, headers=headers, verify=True)
except requests.HTTPError as he:
    raise SystemExit(he)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...