Python, получение аргументов исключения из системной информации - PullRequest
0 голосов
/ 05 мая 2020

, если у меня есть доступ только к sys.exc_info (),

exc_type, exc_value, exc_traceback = sys.exc_info()

при возникновении этого исключения,

class TestException(Exception):

    def __init__(self, message, arg_a):
        super().__init__(message)
        self.arg_a = arg_a

Возможно ли получить доступ к переменной экземпляра arg_a из любого из, exc_type, exc_value, exc_traceback?

1 Ответ

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

Да, это довольно просто:

import sys

class TestException(Exception):
    def __init__(self, message, arg_a):
        super().__init__(message)
        self.arg_a = arg_a

try:
    raise TestException("message", "spanish inquisition")
except TestException as e:
    print(e.arg_a)  # spanish inquisition
    exc_type, exc_value, exc_traceback = sys.exc_info()
    print(exc_value.arg_a)  # spanish inquisition

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...