How to pass a variable to an exception when raised and retrieve it when excepted?

Question:

Right now I just have a blank exception class. I was wondering how I can give it a variable when it gets raised and then retrieve that variable when I handle it in the try…except.

class ExampleException (Exception):
    pass
Asked By: Takkun

||

Answers:

Give its constructor an argument, store that as an attribute, then retrieve it in the except clause:

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

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

You can do this.

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

Works fine.

Answered By: S.Lott
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.