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 相关文章推荐
在GitHub Pages上使用Pelican搭建博客的教程
Apr 25 Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
Jan 20 Python
python之Socket网络编程详解
Sep 29 Python
python3中bytes和string之间的互相转换
Feb 09 Python
Python序列化基础知识(json/pickle)
Oct 19 Python
python将pandas datarame保存为txt文件的实例
Feb 12 Python
python使用selenium实现批量文件下载
Mar 11 Python
Python求离散序列导数的示例
Jul 10 Python
python的一些加密方法及python 加密模块
Jul 11 Python
Python pickle模块实现对象序列化
Nov 22 Python
利用Python实现学生信息管理系统的完整实例
Dec 30 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
Feb 18 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的Yii框架中创建视图和渲染视图的方法详解
2016/03/29 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
php格式文件打开的四种方法
2018/02/24 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
2019/10/12 PHP
js操作textarea方法集合封装(兼容IE,firefox)
2011/02/22 Javascript
利用js 进行输入框自动匹配字符的小例子
2013/06/29 Javascript
js 限制input只能输入数字、字母和汉字等等
2013/12/18 Javascript
解决JS请求服务器gbk文件乱码的问题
2015/10/16 Javascript
在React框架中实现一些AngularJS中ng指令的例子
2016/03/06 Javascript
基于jquery实现百度新闻导航菜单滑动动画
2016/03/15 Javascript
jQuery qrcode生成二维码的方法
2016/04/03 Javascript
AngularJS实践之使用NgModelController进行数据绑定
2016/10/08 Javascript
浅谈函数调用的不同方式,以及this的指向
2017/09/17 Javascript
vue移动端实现手机左右滑动入场动画
2020/06/17 Javascript
vue 使用 canvas 实现手写电子签名
2020/03/06 Javascript
Vue实现附件上传功能
2020/05/28 Javascript
前端vue+elementUI如何实现记住密码功能
2020/09/20 Javascript
解决await在forEach中不起作用的问题
2021/02/25 Javascript
Python列表(list)常用操作方法小结
2015/02/02 Python
python远程连接MySQL数据库
2019/04/19 Python
django的settings中设置中文支持的实现
2019/04/28 Python
python for循环remove同一个list过程解析
2019/08/14 Python
python 实现矩阵填充0的例子
2019/11/29 Python
Python装饰器实现方法及应用场景详解
2020/03/26 Python
sklearn线性逻辑回归和非线性逻辑回归的实现
2020/06/09 Python
python实现斗地主分牌洗牌
2020/06/22 Python
Python实现树莓派摄像头持续录像并传送到主机的步骤
2020/11/30 Python
python+selenium实现12306模拟登录的步骤
2021/01/21 Python
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
阿拉伯书店:Jamalon
2019/07/24 全球购物
社会学专业学生职业规划书
2014/02/07 职场文书
应届生求职自荐信
2014/07/04 职场文书
毕业生找工作求职信
2014/08/05 职场文书
考博导师推荐信范文
2015/03/27 职场文书
学法用法心得体会(2016推荐篇)
2016/01/21 职场文书
导游词之无锡华莱坞
2019/12/02 职场文书