您的位置:首页 > 编程语言 > Python开发

python异常信息捕获方法整理归纳

2011-12-09 09:36 585 查看
方法一:

try:

....print 1/0

except Exception,con:

....print Exception,":",con

#con可以换成其它的名字

################################

方法二:

try:

....print 1/0

except:

....import traceback

....traceback.print_exc()#将异常信息打印在解释器上

....#以下是写入文件

....fp=open("d:\\error.txt","w")

....traceback.print_exc(file=fp)

....fp.close()

#函数原型:print_exc( [limit[, file]])

################################

方法三:

try:

....print 1/0

except:

....import traceback,sys

....traceback.print_exception(*sys.exc_info())#将异常信息打印在解释器上

....#以下是写入文件

....fp=open("d:\\error.txt","w")

....traceback.print_exception(*sys.exc_info(),file=fp)

....fp.close()

#函数原型:print_exception( type, value, traceback[, limit[, file]])

#此方法实际上等同于方法二

################################

方法四:

#此方法参考自 ipro7@逆浪′

try:

....print 1/0

except:

....import traceback,sys

....exc="".join(traceback.format_exception(*sys.exc_info()))

....print exc

....#以下为写入文件

....fp=open("d:\\error.txt","w")

....fp.write(exc)

....fp.close()

#函数原型:format_exception( type, value, tb[, limit])

#该函数返回一个包含异常信息的列表

################################

方法五:

#此方法参考自 超级打包@龙飞飞龙

#写入文件示例

import sys

class MyError:

....def __init__(self,path="d:\\error.txt"):

........self.__flag=0

........self.__path=path

....def write(self,text): #函数名只能用write

........if not self.__flag:

............self.__flag=1

............fp=open(self.__path,"w")

............fp.write(text)

............fp.close()

........else:

............fp=open(self.__path,"a")

............fp.write(text)

............fp.close()

sys.stderr=MyError()

print 1/0

#当有异常抛出时,sys.stderr的write方法会被自动调用

来源:http://www.lexun.cn/forum.php?mod=viewthread&tid=3713492
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: