异常信息对于定位错误是至关重要的。
try:
...
except Exception as e:
print(str(e))
异常信息:
division by zero
在上面这种结构中,获取到的异常信息有限,和我们遇到异常退出获取不一致。
使用traceback
模块可以获取到最全的信息,和运行中出错的信息一致。
使用traceback.print_exc()
可以将打印信息输出到控制台。
使用traceback.format_exc()
获取异常信息的字符串,输出到指定位置。
import traceback
try:
1/0
except Exception as e:
# 直接将异常信息输出到控制台
traceback.print_exc()
# 将异常信息输出到文件中
with open("log", "w") as f:
f.write(traceback.format_exc())
异常信息:
File “.\demo1.py”, line 4, in
traceback.print_exc()
NameError: name ‘traceback’ is not defined