python異常資訊捕獲方法整理歸納

來源:互聯網
上載者:User

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.