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 可以输出异常的详细信息。又不产生程序中断和用户界面不想看到的带红字错误。
浙公网安备 33010602011771号