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 相关文章推荐
Python3基础之条件与循环控制实例解析
Aug 13 Python
简单的Apache+FastCGI+Django配置指南
Jul 22 Python
Python爬虫实现百度图片自动下载
Feb 04 Python
Django配置celery(非djcelery)执行异步任务和定时任务
Jul 16 Python
Pandas Shift函数的基础入门学习笔记
Nov 16 Python
python+opencv实现高斯平滑滤波
Jul 21 Python
jupyter 导入csv文件方式
Apr 21 Python
python中os包的用法
Jun 01 Python
详解python os.path.exists判断文件或文件夹是否存在
Nov 16 Python
python快速安装OpenCV的步骤记录
Feb 22 Python
python 递归相关知识总结
Mar 03 Python
Python带你从浅入深探究Tuple(基础篇)
May 15 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
如何用C语言编写PHP扩展的详解
2013/06/13 PHP
PHP中spl_autoload_register()和__autoload()区别分析
2014/05/10 PHP
PHP设计模式之单例模式定义与用法分析
2019/03/26 PHP
PHP使用PDO 连接与连接管理操作实例分析
2020/04/21 PHP
jQuery Dialog 弹出层对话框插件
2010/08/09 Javascript
获取服务器传来的数据 用JS去空格的正则表达式
2012/03/26 Javascript
jQuery实现为图片添加镜头放大效果的方法
2015/06/25 Javascript
详解JavaScript对Date对象的操作问题(生成一个倒数7天的数组)
2015/10/01 Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
2015/11/17 Javascript
JS遍历ul下的li点击弹出li的索引的实现方法
2016/09/19 Javascript
JS实现的点击表头排序功能示例
2017/03/27 Javascript
微信小程序后台解密用户数据实例详解
2017/06/28 Javascript
JavaScript实现计算多边形质心的方法示例
2018/01/31 Javascript
vue-cli开发时,关于ajax跨域的解决方法(推荐)
2018/02/03 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
vue自定义tap指令及tap事件的实现
2018/09/18 Javascript
swiper在angularjs中使用循环轮播失效的解决方法
2018/09/27 Javascript
简单说说如何使用vue-router插件的方法
2019/04/08 Javascript
微信小程序如何引用外部js,外部样式,公共页面模板
2019/07/23 Javascript
[38:23]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第二场 11.01
2020/11/02 DOTA
讲解Python中的递归函数
2015/04/27 Python
Python运算符重载用法实例
2015/05/28 Python
python Django模板的使用方法
2016/01/14 Python
python使用psutil模块获取系统状态
2016/08/27 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
2017/09/30 Python
深入理解Django自定义信号(signals)
2018/10/15 Python
Django认证系统实现的web页面实现代码
2019/08/12 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
2020/03/12 Python
美国益智玩具购物网站:Fat Brain Toys
2017/11/03 全球购物
工厂门卫岗位职责
2013/11/25 职场文书
办公室文员工作自我评价
2013/12/01 职场文书
机械个人求职信范文
2014/01/24 职场文书
主持人婚宴答谢词
2014/01/28 职场文书
2019最新企业员工考勤管理制度(通用版)!
2019/07/02 职场文书
Pytest实现setup和teardown的详细使用详解
2021/04/17 Python
Redis集群新增、删除节点以及动态增加内存的方法
2021/09/04 Redis