Python异常模块traceback用法实例分析


Posted in Python onOctober 22, 2019

本文实例讲述了Python异常模块traceback用法。分享给大家供大家参考,具体如下:

traceback模块被用来跟踪异常返回信息. 如下例所示:

import traceback
try:
  raise SyntaxError, "traceback test"
except:
  traceback.print_exc()

将会在控制台输出类似结果:

Traceback (most recent call last):
  File "H:PythonWorkSpaceTestsrcTracebackTest.py", line 3, in <module>
    raise SyntaxError, "traceback test"
SyntaxError: traceback test

类似在你没有捕获异常时候, 解释器所返回的结果.

你也可以传入一个文件, 把返回信息写到文件中去, 如下:

import traceback
import StringIO
try:
  raise SyntaxError, "traceback test"
except:
  fp = StringIO.StringIO()  #创建内存文件对象
  traceback.print_exc(file=fp)
  message = fp.getvalue()
  print message

这样在控制台输出的结果和上面例子一样,traceback模块还提供了extract_tb函数来格式化跟踪返回信息, 得到包含错误信息的列表, 如下:

import traceback
import sys
def tracebacktest():
  raise SyntaxError, "traceback test"
try:
  tracebacktest()
except:
  info = sys.exc_info()
  for file, lineno, function, text in traceback.extract_tb(info[2]):
    print file, "line:", lineno, "in", function
    print text
  print "** %s: %s" % info[:2]

控制台输出结果如下:

H:PythonWorkSpaceTestsrcTracebackTest.py line: 7 in <module>
tracebacktest()
H:PythonWorkSpaceTestsrcTracebackTest.py line: 5 in tracebacktest
raise SyntaxError, "traceback test"
** <type 'exceptions.SyntaxError'>: traceback test

test1.py中,当分母为0的时候,调用系统退出。代码如下:

#!/usr/bin/python
import sys
def division(a=1, b=1):
  if b==0:
     print 'b eq 0'
     sys.exit(1)
  else:
     return a/b

test2.py中,用try..except捕获异常,然后traceback.print_exc()打印。

代码如下:

#!/usr/bin/python
import sys
import traceback
import test1
a=10
b=0
try:
  print test1.division(a,b)
except:
  print 'invoking division failed.'
  traceback.print_exc()
  sys.exit(1)

执行test2.py失败抛出异常。

$python test2.py

execution python-2.5.1/python (enodeb/linux)
b eq 0
invoking division failed.
Traceback (most recent call last):
 File "test2.py", line 10, in <module>
  test1.division(a,b)
 File "/home/fesu/test1.py", line 6, in division
  sys.exit(1)
SystemExit: 1

更多Python相关内容感兴趣的读者可查看本站专题:《Python入门与进阶经典教程》、《Python字符串操作技巧汇总》、《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
php使用递归与迭代实现快速排序示例
Jan 23 Python
python开发之for循环操作实例详解
Nov 12 Python
python使用PyCharm进行远程开发和调试
Nov 02 Python
python爬虫 使用真实浏览器打开网页的两种方法总结
Apr 21 Python
Python识别快递条形码及Tesseract-OCR使用详解
Jul 15 Python
django使用haystack调用Elasticsearch实现索引搜索
Jul 24 Python
python读取Excel表格文件的方法
Sep 02 Python
python 实现多线程下载视频的代码
Nov 15 Python
Python如何通过Flask-Mail发送电子邮件
Jan 29 Python
pytorch掉坑记录:model.eval的作用说明
Jun 23 Python
Pandas中两个dataframe的交集和差集的示例代码
Dec 13 Python
使用numpy实现矩阵的翻转(flip)与旋转
Jun 03 Python
Python多线程爬取豆瓣影评API接口
Oct 22 #Python
Python Process多进程实现过程
Oct 22 #Python
详解python中eval函数的作用
Oct 22 #Python
FFT快速傅里叶变换的python实现过程解析
Oct 21 #Python
python 采用paramiko 远程执行命令及报错解决
Oct 21 #Python
python文件读写代码实例
Oct 21 #Python
python 动态调用函数实例解析
Oct 21 #Python
You might like
php字符串过滤与替换小结
2015/01/26 PHP
PHP获取数组中指定的一列实例
2017/12/27 PHP
js getElementsByTagName的简写方式
2010/06/27 Javascript
基于JQuery的抓取博客园首页RSS的代码
2011/12/01 Javascript
深入理解JavaScript系列(15) 函数(Functions)
2012/04/12 Javascript
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
JavaScript创建对象的写法
2013/08/29 Javascript
jquery 追加tr和删除tr示例代码
2013/09/12 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
jquery获取select,option所有的value和text的实例
2017/03/06 Javascript
用vue的双向绑定简单实现一个todo-list的示例代码
2017/08/03 Javascript
vue+jquery+lodash实现滑动时顶部悬浮固定效果
2018/04/28 jQuery
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
jQuery实现的自定义轮播图功能详解
2018/12/28 jQuery
vue.js 打包时出现空白页和路径错误问题及解决方法
2019/06/26 Javascript
vue 页面回退mounted函数不执行的解决方案
2020/07/26 Javascript
python笔记:mysql、redis操作方法
2017/06/28 Python
Python+matplotlib+numpy绘制精美的条形统计图
2018/01/02 Python
使用python绘制二元函数图像的实例
2019/02/12 Python
Django框架 querySet功能解析
2019/09/04 Python
tensorflow生成多个tfrecord文件实例
2020/02/17 Python
基于Python实现简单学生管理系统
2020/07/24 Python
Python pickle模块常用方法代码实例
2020/10/10 Python
HTML5语义化元素你真的用对了吗
2019/08/22 HTML / CSS
台湾流行服饰购物平台:OB严选
2018/01/21 全球购物
HomeAway英国:全球领先的度假租赁在线市场
2020/02/03 全球购物
同学聚会主持词
2014/03/18 职场文书
五五普法心得体会
2014/09/04 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
幼儿园国庆节活动总结
2015/03/23 职场文书
2015年教师师德师风承诺书
2015/04/28 职场文书
2015年卫生监督工作总结
2015/05/21 职场文书
汽车销售员工作总结
2015/08/12 职场文书
nginx部署多前端项目的几种方法
2021/05/25 Servers
mysql中关键词exists的用法实例详解
2022/06/10 MySQL