Подтвердить что ты не робот

Как передать переменную в исключение при поднятии и извлечении ее при ее освобождении?

Сейчас у меня только пустой класс исключений. Мне было интересно, как я могу дать ему переменную, когда она поднимается, а затем извлекает эту переменную, когда я обрабатываю ее в try... except.

class ExampleException (Exception):
    pass
4b9b3361

Ответ 1

Дайте конструктору аргумент, сохраните его как атрибут, затем верните его в предложение except:

class FooException(Exception):
    def __init__(self, foo):
        self.foo = foo

try:
    raise FooException("Foo!")
except FooException as e:
    print e.foo

Ответ 2

Вы можете сделать это.

try:
    ex = ExampleException()
    ex.my_variable= "some value"
    raise ex
except ExampleException, e:
    print( e.my_variable )

Прекрасно работает.