python:如何在引发时将变量传递给异常并在排除时检索它?

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

现在我只有一个空白的异常类。我想知道如何在它被引发时给它一个变量,然后在尝试中处理它时检索该变量……

1
2
class ExampleException (Exception):
    pass


给它的构造函数一个参数,存储为一个属性,然后在except子句中检索它:

1
2
3
4
5
6
7
8
class FooException(Exception):
    def __init__(self, foo):
        self.foo = foo

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

你能做到的。

1
2
3
4
5
6
try:
    ex = ExampleException()
    ex.my_variable="some value"
    raise ex
except ExampleException, e:
    print( e.my_variable )

工作很好。