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

方法一:
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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值