【问题标题】:How to pass a variable to an exception when raised and retrieve it when excepted?如何在引发时将变量传递给异常并在异常时检索它?
【发布时间】:2011-10-01 09:26:09
【问题描述】:

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

class ExampleException (Exception):
    pass

【问题讨论】:

标签: python exception


【解决方案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 )
    

    工作正常。

    【讨论】:

    • 虽然这样有效,但通常这样设置对象属性并不是一个好习惯。在__init__ 内执行此操作的公认答案方法更好。
    猜你喜欢
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2016-12-28
    • 2014-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多