Для исключений, используемых в проекте:
class SwitcherError(Exception):
pass
class ApiError(SwitcherError):
pass
class ApiHTTPError(ApiError):
def __init__(self, message=None, text=None, api_errors=None):
self.text = text
self.message = message
self.errors = api_errors
class ApiJsonError(ApiError):
def __init__(self, message=None, text=None):
super().__init__(message)
self.text = text
Если я распечатаю ошибку, используя super, я не получаю отпечаток кортежа аргументов (как определено BaseException), ноЯ делаю, если я не использую super () и просто переопределяю аргументы прямо в инициализаторе.Я не понимаю, почему это так и как я должен писать свои классы.
Куда «текст» попал в вывод?
try:
raise ApiJsonError('msg', 'text')
except ApiJsonError as e:
print(e)
>>> 'msg'
, где, как показано ниже, как и ожидалось
try:
raise ApiHTTPError('msg', 'text')
except ApiHTTPError as e:
print(e)
>>>('msg', 'text')