python traceback模块概要(更新中)

traceback模块概要

1、学习一个模块的方法

    1)help(模块)最直接

    2)登录python官网

    ide中的专业术语汇总:a、limit 限制,可以理解为输出的元素的限制个数。

2、调用   

import traceback
import sys
def func(a,b):
    c = a/b
    print c
a = []
try:
    func(10,0)
except Exception as e:
    print e
    print "str=",traceback.format_exc()
    traceback.print_exc(limit =2,file = open(r"D:\taclog.txt","w"))
    #print "list=",traceback.format_list(traceback.extract_stack())
    print traceback.extract_stack()
print "continue "
f = open(r"D:\taclog.txt","r")
t = f.read()
print t


>>> 
integer division or modulo by zero
str= Traceback (most recent call last):
  File "C:/Python27/tra.py", line 8, in <module>
    func(10,0)
  File "C:/Python27/tra.py", line 4, in func
    c = a/b
ZeroDivisionError: integer division or modulo by zero

[('<string>', 1, '<module>', None), ('C:\\Python27\\lib\\idlelib\\run.py', 97, 'main', 'ret = method(*args, **kwargs)'), ('C:\\Python27\\lib\\idlelib\\run.py', 298, 'runcode', 'exec code in self.locals'), ('C:/Python27/tra.py', 14, '<module>', 'print traceback.extract_stack()')]
continue 
Traceback (most recent call last):
  File "C:/Python27/tra.py", line 8, in <module>
    func(10,0)
  File "C:/Python27/tra.py", line 4, in func
    c = a/b
ZeroDivisionError: integer division or modulo by zero

>>> 
traceback.print_exc(limit =2,file = open(r"D:\taclog.txt","w"))将错误打印到文件
traceback.format_exc() 将错误以字符串形式输出
traceback.extract_stack()元素为元组,输出为列表,每个为栈的入口。

3、应用

 traceback.print_exc 来代替print e 可以输出异常的详细信息。又不产生程序中断和用户界面不想看到的带红字错误。

 

posted on 2017-01-05 16:00  lexn  阅读(159)  评论(0)    收藏  举报

导航