如何在抛出异常时传递变量,并在捕获时获取?

49 投票
2 回答
39688 浏览
提问于 2025-04-16 21:06

现在我只有一个空的异常类。我想知道当这个异常被抛出时,怎么给它一个变量,然后在处理这个异常的 try...except 语句中怎么取出这个变量。

class ExampleException (Exception):
    pass

2 个回答

-3

你可以这样做。

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

运行得很好。

77

给它的构造函数传一个参数,把这个参数存储为一个属性,然后在except语句中取出来使用:

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

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

撰写回答