在我的代码中,当出现异常时,我想捕获异常并将一些关于异常的信息打印到屏幕上,然后在完成操作后结束脚本。我尝试使用类似以下代码的内容,但我不明白为什么我会得到跟踪错误。
执行以下代码时:
try:
1 / 0
except ZeroDivisionError:
print("Exception: ZeroDivisionError")
raise Exception
控制台输出:
Exception: ZeroDivisionError
Traceback (most recent call last):
File "<pyshell#19>", line 2, in <module>
1 / 0
ZeroDivisionError: division by zero
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<pyshell#19>", line 5, in <module>
raise Exception
Exception
我原以为如果捕获了ZeroDivisionError
,它就不会再被触发,只有我在结尾处写的raise Exception
才会显示,但是两者都在控制台中显示。
为什么两者都显示,如何修改代码使只有第二个显示,或者有更好的方法实现我的目标?
raise Exception from None
会导致SyntaxError。这是自然行为吗? - Sencer H.