小能豆

如何确定发生了哪种类型的异常?

py

some_function()执行时引发异常,因此程序跳转到except

try:
    some_function()
except:
    print("exception happened!")

我如何查看导致异常发生的原因?


阅读 40

收藏
2024-10-10

共1个答案

小能豆

要查看导致异常发生的原因,可以使用except以下命令捕获异常的详细信息:Exception阶级traceback模块。您可以按照以下方法修改代码,以打印异常类型、消息和完整回溯:

1.捕获异常消息:

as您可以使用将其分配给变量来捕获特定的异常:

try:
    some_function()
except Exception as e:
    print(f"Exception occurred: {e}")

这将打印异常消息,但不会给您完整的回溯。

2. 打印完整的回溯:

要获取更多详细信息,包括完整的回溯,您可以使用该traceback模块:

import traceback

try:
    some_function()
except Exception as e:
    print(f"Exception occurred: {e}")
    traceback.print_exc()

traceback.print_exc()函数将打印完整的堆栈跟踪,向您显示异常发生的确切位置并提供更多调试上下文。

示例输出:

Exception occurred: division by zero
Traceback (most recent call last):
  File "example.py", line 3, in <module>
    some_function()
  File "example.py", line 2, in some_function
    return 1 / 0
ZeroDivisionError: division by zero

这将为您提供异常消息(division by zero)和回溯,显示何时

2024-10-10