在开发中,可能一个源文件代码行数比较多,尤其变量在多个地方存在,报错定位不好确定时,可以使用以下代码来捕获异常并打印出错误所在行数。这样就可以便于快速定位到出问题的地方啦。
import sys
try:
...
except Exception as e:
print(f"Error on line {sys.exc_info()[-1].tb_lineno}: {str(e)}")
# 直接 print(e) 的效果:
'NoneType' object has no attribute 'number_plate'
# 打印出错误行数的效果:
Error on line 78: 'NoneType' object has no attribute 'number_plate'打印异常的堆栈信息:
import traceback
try:
open("nonexistent_file.txt")
except Exception:
print(traceback.format_exc())会打印出完整的堆栈跟踪信息,包括错误发生的位置和调用堆栈。