- Цел: предаване на изключение от блок за опит освен към метод за дефиниране на персонализиран изход към потребителя въз основа на типа грешка, без да се използва requests.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)