gpt4 book ai didi

python - Python中的异常传递

转载 作者:IT老高 更新时间:2023-10-28 21:01:15 26 4
gpt4 key购买 nike

我有一些代码可以进行一些功能性异常处理并且一切正常,当我希望它们出现时会引发异常,但是当我调试时,行跟踪并不总是完全符合我的要求他们去。

示例 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

最佳答案

当您重新引发捕获的异常时,例如

except Exception as e: raise e

它重置堆栈跟踪。这就像重新提出一个新的异常(exception)。你想要的是这样的:

except Exception as e: raise

关于python - Python中的异常传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4730435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com