- Цель: передать исключение из блока try, кроме метода, чтобы определить пользовательский вывод для пользователя на основе типа ошибки, не используя request.status_code для указания каждого кода ошибки.
- Чего я ожидал:
error == HTTPError
будет равнятьсяTrue
, а неFalse
. - Что я пробовал: несколько вариантов от
HTTPError
доrequests.exceptions.HTTPError
, а также просто искал здесь, а также в Google, но не нашел того, что искал.
Когда я встречаю или вызываю исключение HTTPError
и передаю исключение как e
методу, аргумент, передаваемый методу, не равен HTTPError
. (Я понимаю, что это не лучшая практика для import *
, но для целей тестирования это упрощает ситуацию.)
Когда я отлаживаю его и проверяю типы и равенство исключений по всей программе, я получаю следующее:
e == HTTPError
False
error == HTTPError
False
type(error)
<class 'requests.exceptions.HTTPError'>
type(HTTPError)
<class 'type'>
Код:
from requests import *
def returnError(error : exceptions) -> dict:
""" Returns an updated dictionary with corresponding message matching the error """
if error == HTTPError:
result = {}
return result
try:
raise HTTPError
except (HTTPError) as e:
returnError(e)