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字符串的常用操作方法小结
May 21 Python
Python中使用asyncio 封装文件读写
Sep 11 Python
Python内置函数 next的具体使用方法
Nov 24 Python
Python之reload流程实例代码解析
Jan 29 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
Apr 12 Python
Python 批量合并多个txt文件的实例讲解
May 08 Python
pygame游戏之旅 添加碰撞效果的方法
Nov 20 Python
详解在python操作数据库中游标的使用方法
Nov 12 Python
python、Matlab求定积分的实现
Nov 20 Python
浅谈tensorflow中张量的提取值和赋值
Jan 19 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
Mar 01 Python
python自然语言处理之字典树知识总结
Apr 25 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学习笔记 IIS7下安装配置php环境
2012/10/29 PHP
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
Dwz与thinkphp整合下的数据导出到Excel实例
2014/12/04 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
2015/08/25 PHP
微信公众号判断用户是否已关注php代码解析
2016/06/24 PHP
php7 安装yar 生成docker镜像
2017/05/09 PHP
laravel 配置路由 api和web定义的路由的区别详解
2019/09/03 PHP
PHP $O00OO0=urldecode &amp; eval 解密,记一次商业源码的去后门
2020/09/13 PHP
js一组验证函数
2008/12/20 Javascript
parseInt parseFloat js字符串转换数字
2010/08/01 Javascript
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
2010/12/30 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
2013/02/18 Javascript
javascript使用正则控制input输入框允许输入的值方法大全
2014/06/19 Javascript
vue2.0开发实践总结之入门篇
2016/12/06 Javascript
JQuery异步提交表单与文件上传功能示例
2017/01/12 Javascript
在Vue中如何使用Cookie操作实例
2017/07/27 Javascript
JavaScript链式调用实例浅析
2018/12/19 Javascript
Vue数据绑定实例写法
2019/08/06 Javascript
vue使用Sass时报错问题的解决方法
2020/10/14 Javascript
Vue常用API、高级API的相关总结
2021/02/02 Vue.js
简单了解Python下用于监视文件系统的pyinotify包
2015/11/13 Python
python 连接sqlite及简单操作
2017/06/30 Python
Python实现随机选择元素功能
2017/09/14 Python
Python实现的网页截图功能【PyQt4与selenium组件】
2018/07/12 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
python eventlet绿化和patch原理
2020/11/21 Python
python中用Scrapy实现定时爬虫的实例讲解
2021/01/18 Python
美国优质马术服装购买网站:Breeches.com
2019/12/16 全球购物
英国发展最快的在线超市之一:Click Marketplace
2021/02/15 全球购物
建筑工程专业毕业生自荐信
2013/10/19 职场文书
护理毕业生自荐信范文
2013/12/22 职场文书
你懂得怎么写自荐信吗?
2013/12/27 职场文书
董事长助理岗位职责
2014/02/18 职场文书
关于护士节的演讲稿
2014/05/26 职场文书
学校食堂标语
2014/10/06 职场文书
2015双创工作总结
2015/07/24 职场文书