单个函数调用
在代码中使用 traceback.print_exc()
时,可以将打印异常的堆栈跟踪信息,包括异常类型、异常消息和代码中引发异常的位置。以下是一个简单的示例:
import traceback
def divide(x, y):
try:
result = x / y
return result
except Exception as e:
traceback.print_exc()
result = divide(10, 0)
print("Result:", result)
由于尝试除以零会引发异常,traceback.print_exc()
将打印异常信息。示例输出如下:
Traceback (most recent call last):
File "example.py", line 7, in divide
result = x / y
ZeroDivisionError: division by zero
多个函数调用
多个函数调用引发异常时 traceback.print_exc()
的使用:
import traceback
def divide(x, y):
result = x / y
return result
def calculate():
try:
result = divide(10, 0)
print("Result:", result)
except Exception as e:
traceback.print_exc()
def main():
try:
calculate()
except Exception as e:
traceback.print_exc()
if __name__ == "__main__":
main()
在示例中,main()
函数调用了 calculate()
函数,而 calculate()
函数又调用了 divide()
函数。当 divide()
函数尝试除以零时,会引发 ZeroDivisionError
异常。然后,calculate()
函数捕获了该异常并使用 traceback.print_exc()
打印异常堆栈信息。最后,main()
函数也可能捕获异常并打印堆栈信息。
示例输出如下:
Traceback (most recent call last):
File "example.py", line 13, in calculate
result = divide(10, 0)
File "example.py", line 5, in divide
result = x / y
ZeroDivisionError: division by zero
这样就可以看到异常的完整堆栈跟踪,从而更好地理解异常发生的位置和原因。