我有一些代码可以完成一些功能异常处理,并且一切正常,当我希望它们出现时会引发异常,但是当我在调试时,线路跟踪并不总是这样相当我想要他们。在Python中传递异常
实施例A:
>>> 3/0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero
实施例B:
>>> try: 3/0
... except Exception as e: raise e
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
ZeroDivisionError: integer division or modulo by zero
在这两个例子中,异常发生确实在第1行,在这里我们试图这样做3/0,但在后面的例子中,我们被告知它发生在第2行,在那里被提出。
有没有在Python的方式来引发异常,就好像它是另一个例外,一些会产生以下的输出:
>>> try: 3/0
... except Exception as e: metaraise(e)
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero
在这种情况下,您不需要存储变量。 – 2011-01-19 00:05:01
除了我需要以某种方式将它存储在一个变量中,并将它传递到某个地方,它最终会被提升。 – 2011-01-19 00:29:10