Python中获取异常发生的文件和具体行数的方法
本文介绍在Python的try-except块中,如何通过访问异常对象的__traceback__属性,精准获取引发异常的文件路径和具体代码行号。通过示例代码展示如何提取tb_frame.f_globals中的__file__以及tb_lineno,帮助开发者快速定位程序错误源头,提升调试效率。
Python获取异常文件与行号的核心代码
为了节省篇幅,这里直接展示核心实现代码。
try:
print(a)
except Exception as e:
print(e)
print(e.__traceback__.tb_frame.f_globals["__file__"]) # 发生异常所在的文件
print(e.__traceback__.tb_lineno) # 发生异常所在的行数
其他语言异常日志输出参考
补充说明:如何在catch块中输出包含Exception类型及报错行数的完整错误日志
try(){
}catch(Exception e){
}
在捕获异常的代码块中,输出包含异常类型及具体报错行数的完整日志信息
实现方式:在catch代码块内部添加特定处理逻辑
1)
ByteArrayOutputStream baos = new ByteArrayOutputStream();
e.printStackTrace(new PrintStream(baos));
String exception = baos.toString();
System.out.println("baos:" + exception);
2)
logger.error("",e);
以上就是Python中捕获异常并获取发生异常的文件及具体行数的完整方法。希望本文提供的内容对大家有所帮助,欢迎大家继续支持相关技术社区。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













