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 专题五 列表基础知识(二维list排序、获取下标和处理txt文本实例)
Mar 20 Python
深入浅出分析Python装饰器用法
Jul 28 Python
机器学习的框架偏向于Python的13个原因
Dec 07 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
Dec 15 Python
Django使用httpresponse返回用户头像实例代码
Jan 26 Python
Atom的python插件和常用插件说明
Jul 08 Python
django框架自定义用户表操作示例
Aug 07 Python
Flask核心机制之上下文源码剖析
Dec 25 Python
使用python分析统计自己微信朋友的信息
Jul 19 Python
wxpython绘制圆角窗体
Nov 18 Python
python requests包的request()函数中的参数-params和data的区别介绍
May 05 Python
用python制作个音乐下载器
Jan 30 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
使ecshop模板中可引用常量的实现方法
2011/06/02 PHP
PHP实现扎金花游戏之大小比赛的方法
2015/03/10 PHP
Zend Framework教程之模型Model用法简单实例
2016/03/04 PHP
JavaScript Chart 插件整理
2010/06/18 Javascript
JS 精确统计网站访问量的实例代码
2013/07/05 Javascript
javascript上传图片前预览图片兼容大多数浏览器
2013/10/25 Javascript
jquery.ui.draggable中文文档(原文翻译)
2013/11/15 Javascript
js点击button按钮跳转到另一个新页面
2014/10/10 Javascript
Google Maps API地图应用示例分享
2014/10/23 Javascript
详解JavaScript中的客户端消息框架设计原理
2015/06/24 Javascript
基于javascript实现页面加载loading效果
2020/09/15 Javascript
Web Uploader文件上传插件使用详解
2016/05/10 Javascript
javascript实现的左右无缝滚动效果
2016/09/19 Javascript
parabola.js抛物线与加入购物车效果的示例代码
2017/10/25 Javascript
NodeJS实现一个聊天室功能
2019/11/25 NodeJs
JS常用排序方法实例代码解析
2020/03/03 Javascript
[01:43]倾听DOTA2英雄之声 魅惑魔女国服配音鉴赏
2013/06/06 DOTA
提升Python程序运行效率的6个方法
2015/03/31 Python
在Python的Django框架中编写错误提示页面
2015/07/22 Python
python 读取竖线分隔符的文本方法
2018/12/20 Python
Django如何防止定时任务并发浅析
2019/05/14 Python
python全栈要学什么 python全栈学习路线
2019/06/28 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
python suds访问webservice服务实现
2020/06/26 Python
html5 datalist 选中option选项后的触发事件
2020/03/05 HTML / CSS
匡威意大利官方商店 :Converse意大利
2018/11/27 全球购物
护士岗位求职应聘自荐书范文
2014/02/12 职场文书
《卖木雕的少年》教学反思
2014/04/11 职场文书
省级优秀毕业生主要事迹
2014/05/29 职场文书
人事专员岗位说明书
2014/07/29 职场文书
大学生实习证明范本
2014/09/19 职场文书
兵马俑的导游词
2015/02/02 职场文书
妇产科护理心得体会
2016/01/22 职场文书
2016年青少年禁毒宣传教育活动总结(学校)
2016/04/05 职场文书
关于SpringBoot 使用 Redis 分布式锁解决并发问题
2021/11/17 Redis
Pycharm远程调试和MySQL数据库授权问题
2022/03/18 MySQL