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 判断自定义对象类型
Mar 21 Python
使用python开发vim插件及心得分享
Nov 04 Python
Python实现遍历windows所有窗口并输出窗口标题的方法
Mar 13 Python
Python中每次处理一个字符的5种方法
May 21 Python
通过源码分析Python中的切片赋值
May 08 Python
用Python实现数据的透视表的方法
Nov 16 Python
Pandas读取并修改excel的示例代码
Feb 17 Python
使用Python3内置文档高效学习以及官方中文文档
May 19 Python
Python通过Pillow实现图片对比
Apr 29 Python
Python 利用argparse模块实现脚本命令行参数解析
Dec 28 Python
装上这 14 个插件后,PyCharm 真的是无敌的存在
Jan 11 Python
python基础之函数的定义和调用
Oct 24 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上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
php截取html字符串及自动补全html标签的方法
2015/01/15 PHP
php设计模式之单例模式实例分析
2015/02/25 PHP
Laravel 5框架学习之Laravel入门和新建项目
2015/04/07 PHP
完美解决AJAX跨域问题
2013/11/01 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
jquery浏览器滚动加载技术实现方案
2014/06/03 Javascript
JS 排序输出实现table行号自增前端动态生成的tr
2014/08/13 Javascript
浅谈JS闭包中的循环绑定处理程序
2014/11/09 Javascript
jquery模拟实现鼠标指针停止运动事件
2016/01/12 Javascript
jQuery实现的导航下拉菜单效果示例
2016/09/05 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
详解JS中遍历语法的比较
2017/04/07 Javascript
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
Bootstrap多级菜单的实现代码
2017/05/23 Javascript
layer弹出层父子页面事件相互调用方法
2018/08/17 Javascript
使用vue-router在Vue页面之间传递数据的方法
2019/07/15 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
2019/12/16 Javascript
微信小程序swiper组件实现抖音翻页切换视频功能的实例代码
2020/06/24 Javascript
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
Python压缩和解压缩zip文件
2015/02/14 Python
Windows下使Python2.x版本的解释器与3.x共存的方法
2015/10/25 Python
python3中dict(字典)的使用方法示例
2017/03/22 Python
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
python实现本地图片转存并重命名的示例代码
2018/10/27 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
html5 css3网站菜单实现代码
2013/12/23 HTML / CSS
针对HTML5的Web Worker使用攻略
2015/07/12 HTML / CSS
HTML5中图片之间的缝隙完美解决方法
2017/07/07 HTML / CSS
Ivory Isle Designs美国/加拿大:婚礼和活动文具公司
2018/08/21 全球购物
俄罗斯有趣和原创礼物网上商店:MagicMag
2019/08/01 全球购物
Tuckernuck官网:经典的美国品质服装、鞋子和配饰
2021/01/11 全球购物
小学生十佳少年事迹材料
2014/08/20 职场文书
工地例会施工汇报材料
2014/08/22 职场文书
致青春观后感
2015/06/09 职场文书
教你怎么用python selenium实现自动化测试
2021/05/27 Python