在开发中,可能一个源文件代码行数比较多,尤其变量在多个地方存在,报错定位不好确定时,可以使用以下代码来捕获异常并打印出错误所在行数。这样就可以便于快速定位到出问题的地方啦。
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())
会打印出完整的堆栈跟踪信息,包括错误发生的位置和调用堆栈。