如何在引发时将变量传递给异常并在异常时检索它?
Posted
技术标签:
【中文标题】如何在引发时将变量传递给异常并在异常时检索它?【英文标题】: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
【问题讨论】:
Nice example 如果你想保留默认的消息行为。 【参考方案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__
内执行此操作的公认答案方法更好。以上是关于如何在引发时将变量传递给异常并在异常时检索它?的主要内容,如果未能解决你的问题,请参考以下文章
我可以在 Gradle 中设置一个变量并在编译时将其传递给 Java 吗?