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 相关文章推荐
Python单链表的简单实现方法
Sep 23 Python
Windows8下安装Python的BeautifulSoup
Jan 22 Python
Python实现Pig Latin小游戏实例代码
Feb 02 Python
django初始化数据库的实例
May 27 Python
python匹配两个短语之间的字符实例
Dec 25 Python
python对于requests的封装方法详解
Jan 03 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
Dec 06 Python
在Mac中PyCharm配置python Anaconda环境过程图解
Mar 11 Python
python json.dumps中文乱码问题解决
Apr 01 Python
超全Python图像处理讲解(多模块实现)
Apr 13 Python
Python 使用Opencv实现目标检测与识别的示例代码
Sep 08 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
Jan 27 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
浅谈ThinkPHP中initialize和construct的区别
2017/04/01 PHP
Laravel框架创建路由的方法详解
2019/09/04 PHP
探讨JavaScript中声明全局变量三种方式的异同
2013/12/03 Javascript
jquery操作下拉列表、文本框、复选框、单选框集合(收藏)
2014/01/08 Javascript
推荐10 个很棒的 jQuery 特效代码
2015/10/04 Javascript
Ionic如何创建APP项目
2016/06/03 Javascript
JavaScript仿网易选项卡制作代码
2016/10/06 Javascript
微信小程序开发实战教程之手势解锁
2016/11/18 Javascript
ajax的分页查询示例(不刷新页面)
2017/01/11 Javascript
js遍历获取表格内数据的方法(必看)
2017/04/06 Javascript
js中Array对象的常用遍历方法详解
2019/01/17 Javascript
微信小程序实现跳转的几种方式总结(推荐)
2019/04/24 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
对vuex中getters计算过滤操作详解
2019/11/06 Javascript
如何编写一个 Webpack Loader的实现
2020/10/18 Javascript
Python栈类实例分析
2015/06/15 Python
Django的信号机制详解
2017/05/05 Python
Python 自动刷博客浏览量实例代码
2017/06/14 Python
tensorflow实现softma识别MNIST
2018/03/12 Python
python logging模块的使用总结
2019/07/09 Python
Django在admin后台集成TinyMCE富文本编辑器的例子
2019/08/09 Python
Python pandas.DataFrame 找出有空值的行
2019/09/09 Python
python+selenium 脚本实现每天自动登记的思路详解
2020/03/11 Python
Python调用REST API接口的几种方式汇总
2020/10/19 Python
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
澳大利亚女性快速时尚零售商:Ally Fashion
2018/04/25 全球购物
TobyDeals美国:在电子产品上获得最好的优惠和折扣
2019/08/11 全球购物
室内设计专业个人的自我评价
2013/12/18 职场文书
五十岁生日宴会答谢词
2014/01/15 职场文书
个人能力自我鉴赏
2014/01/25 职场文书
销售职业生涯规划范文
2014/03/14 职场文书
教职工代表大会主持词
2014/04/01 职场文书
酒店员工培训方案
2014/06/02 职场文书
机关干部作风建设剖析材料
2014/10/23 职场文书
红楼梦读书笔记
2015/06/25 职场文书
一文搞懂Java中的注解和反射
2022/06/21 Java/Android