@Maxwell012

Как обработать ошибку в условии?

Код:
def main(data):
    try:
        ...
    except InvalidArgumentException as ex:
        logger_main.warning('The link does not correct', exc_info=True)
        send_message(data['chat_id'], data['keyboard'], data['token'], ex)

Второй код:
def send_message(chat_id, keyboard, token, result):
    if result == InvalidArgumentException():
        caption = '❗ Ви відправили не корректне посилання ❗'


Код работал исправно, но сейчас почему то перестал. Как я понимаю ошибка в том, что в переменной result хранится не полное исключение, то есть:
Message: invalid argument
  (Session info: headless chrome=106.0.5249.91)
Stacktrace:
Backtrace:
	Ordinal0 [0x004E1ED3+2236115]
	Ordinal0 [0x004792F1+1807089]
	Ordinal0 [0x003865C0+812480]
	Ordinal0 [0x0037992A+760106]
	Ordinal0 [0x00378313+754451]
	Ordinal0 [0x0037861D+755229]
	Ordinal0 [0x0038800E+819214]
	Ordinal0 [0x003E60CD+1204429]
	Ordinal0 [0x003D1A8C+1120908]
	Ordinal0 [0x003E59E2+1202658]
	Ordinal0 [0x003D18A6+1120422]
	Ordinal0 [0x003AA73D+960317]
	Ordinal0 [0x003AB71F+964383]
	GetHandleVerifier [0x0078E7E2+2743074]
	GetHandleVerifier [0x007808D4+2685972]
	GetHandleVerifier [0x00572BAA+532202]
	GetHandleVerifier [0x00571990+527568]
	Ordinal0 [0x0048080C+1837068]
	Ordinal0 [0x00484CD8+1854680]
	Ordinal0 [0x00484DC5+1854917]
	Ordinal0 [0x0048ED64+1895780]
	BaseThreadInitThunk [0x7600FA29+25]
	RtlGetAppContainerNamedObjectPath [0x770B7B5E+286]
	RtlGetAppContainerNamedObjectPath [0x770B7B2E+238]

А должно быть как я понимаю вот это:
Traceback (most recent call last):
  File "...", line 34, in main
    browser.get(data['link'])
  File "D:\Program files\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 442, in get
    self.execute(Command.GET, {'url': url})
  File "D:\Program files\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 430, in execute
    self.error_handler.check_response(response)
  File "D:\Program files\Python\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 247, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidArgumentException: Message: invalid argument
  (Session info: headless chrome=106.0.5249.91)
Stacktrace:
Backtrace:
	Ordinal0 [0x004E1ED3+2236115]
	Ordinal0 [0x004792F1+1807089]
	Ordinal0 [0x003865C0+812480]
	Ordinal0 [0x0037992A+760106]
	Ordinal0 [0x00378313+754451]
	Ordinal0 [0x0037861D+755229]
	Ordinal0 [0x0038800E+819214]
	Ordinal0 [0x003E60CD+1204429]
	Ordinal0 [0x003D1A8C+1120908]
	Ordinal0 [0x003E59E2+1202658]
	Ordinal0 [0x003D18A6+1120422]
	Ordinal0 [0x003AA73D+960317]
	Ordinal0 [0x003AB71F+964383]
	GetHandleVerifier [0x0078E7E2+2743074]
	GetHandleVerifier [0x007808D4+2685972]
	GetHandleVerifier [0x00572BAA+532202]
	GetHandleVerifier [0x00571990+527568]
	Ordinal0 [0x0048080C+1837068]
	Ordinal0 [0x00484CD8+1854680]
	Ordinal0 [0x00484DC5+1854917]
	Ordinal0 [0x0048ED64+1895780]
	BaseThreadInitThunk [0x7600FA29+25]
	RtlGetAppContainerNamedObjectPath [0x770B7B5E+286]
	RtlGetAppContainerNamedObjectPath [0x770B7B2E+238]

Я не понимаю почему в переменной result не полное исключение и как сделать, чтобы снова работало условие.
  • Вопрос задан
  • 44 просмотра
Решения вопроса 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
if result == InvalidArgumentException():
попробуй заменить на
if isinstance(result, InvalidArgumentException):
если я правильно понял смысл кода, так правильнее.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы