【发布时间】:2021-07-23 16:55:29
【问题描述】:
我是 python 新手,正在尝试学习 try 和 except 语句,但我遇到了一件我无法理解的事情,也无法在谷歌上找到答案。问题是当我运行这段代码时,它会打印“错误”:
try:
print(1/0)
except ZeroDivisionError:
print('Error')
但是,在下面的代码中,它在异常中引发了不同的错误,不知何故这两个错误都遇到了,而不是故意引发的错误。代码:
try:
print(1/0)
except ZeroDivisionError:
raise ValueError
错误显示:
Traceback (most recent call last):
File "main.py", line 2, in <module>
print(1/0)
ZeroDivisionError: division by zero
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "main.py", line 4, in <module>
raise ValueError
ValueError
我不明白为什么会出现这两个错误,而不仅仅是ValueError,因为我已经为ZeroDivisionError 做了一个例外
任何帮助将不胜感激
【问题讨论】:
-
During handling of the *above exception*, another exception occurred:它可以帮助您调试 -
使用
raise ValueError from None抑制异常链接。 -
当代码有
ValueError时,为什么你的回溯说TypeError?请发布正确的回溯和代码。 -
@Barmar 抱歉,我复制了错误的错误。我现在已经更新了错误。
-
@Barmar 感谢您的提示,但我不明白为什么会这样。