前言
任何代码执行前都需要考虑代码bug,当出现错误信息时需要展示其错误信息
通过try 方式
代码一
def f1(): result = 123 int('asdf') #故意设置一个错误的代码源 return result def run(): try: ret = f1() print(ret) except Exception as e: print(e) run()View Code
错误信息
invalid literal for int() with base 10: 'asdf' Process finished with exit code 0View Code
在try 基础上引入traceback
代码二
import traceback def f1(): result = 123 int('asdf') #故意设置一个错误的代码源 return result def run(): try: ret = f1() print(ret) except Exception as e: print(traceback.format_exc()) run()View Code
错误信息
Traceback (most recent call last): File "E:/cmdb/auto_client_fang/test.py", line 12, in run ret = f1() File "E:/cmdb/auto_client_fang/test.py", line 7, in f1 int('asdf') #故意设置一个错误的代码源 ValueError: invalid literal for int() with base 10: 'asdf' 注:不仅提示错误类型,还提供错误的代码位置View Code
总结
python 代码从上而下执行,有一行出错则代码执行中断,py文件退出状态为异常1。当设置try 后即使出现错误请况,后面代码还会执行,错误代码可以正常打印出来,退出状态为正常的0。
引入 traceback 后错误的信息提供的更详细,且错误信息为字符串可以直接存入变量以便写入错误日志。
标签:f1,错误,代码,try,ret,run,asdf 来源: https://www.cnblogs.com/fanggege/p/10260635.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。