国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python異常模塊traceback用法實例分析

2019-11-02 14:08:06
字體:
來源:轉載
供稿:網友

本文實例講述了Python異常模塊traceback用法。分享給大家供大家參考,具體如下:

traceback模塊被用來跟蹤異常返回信息. 如下例所示:

import tracebacktry:  raise SyntaxError, "traceback test"except:  traceback.print_exc()

將會在控制臺輸出類似結果:

Traceback (most recent call last):
  File "H:PythonWorkSpaceTestsrcTracebackTest.py", line 3, in <module>
    raise SyntaxError, "traceback test"
SyntaxError: traceback test

類似在你沒有捕獲異常時候, 解釋器所返回的結果.

你也可以傳入一個文件, 把返回信息寫到文件中去, 如下:

import tracebackimport StringIOtry:  raise SyntaxError, "traceback test"except:  fp = StringIO.StringIO()  #創建內存文件對象  traceback.print_exc(file=fp)  message = fp.getvalue()  print message

這樣在控制臺輸出的結果和上面例子一樣,traceback模塊還提供了extract_tb函數來格式化跟蹤返回信息, 得到包含錯誤信息的列表, 如下:

import tracebackimport sysdef tracebacktest():  raise SyntaxError, "traceback test"try:  tracebacktest()except:  info = sys.exc_info()  for file, lineno, function, text in traceback.extract_tb(info[2]):    print file, "line:", lineno, "in", function    print text  print "** %s: %s" % info[:2]

控制臺輸出結果如下:

H:PythonWorkSpaceTestsrcTracebackTest.py line: 7 in <module>
tracebacktest()
H:PythonWorkSpaceTestsrcTracebackTest.py line: 5 in tracebacktest
raise SyntaxError, "traceback test"
** <type 'exceptions.SyntaxError'>: traceback test

test1.py中,當分母為0的時候,調用系統退出。代碼如下:

#!/usr/bin/pythonimport sysdef division(a=1, b=1):  if b==0:     print 'b eq 0'     sys.exit(1)  else:     return a/b

test2.py中,用try..except捕獲異常,然后traceback.print_exc()打印。

代碼如下:

#!/usr/bin/pythonimport sysimport tracebackimport test1a=10b=0try:  print test1.division(a,b)except:  print 'invoking division failed.'  traceback.print_exc()  sys.exit(1)

執行test2.py失敗拋出異常。

$python test2.py

execution python-2.5.1/python (enodeb/linux)b eq 0invoking division failed.Traceback (most recent call last): File "test2.py", line 10, in <module>  test1.division(a,b) File "/home/fesu/test1.py", line 6, in division  sys.exit(1)SystemExit: 1

更多Python相關內容感興趣的讀者可查看本站專題:《Python入門與進階經典教程》、《Python字符串操作技巧匯總》、《Python列表(list)操作技巧總結》、《Python編碼操作技巧總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》及《Python文件與目錄操作技巧匯總》

希望本文所述對大家Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 竹北市| 夏河县| 建始县| 吉水县| 瑞安市| 安岳县| 温宿县| 芜湖县| 城口县| 金湖县| 宁国市| 漯河市| 义马市| 宜兴市| 新沂市| 白银市| 乌苏市| 嘉黎县| 西城区| 林周县| 溧水县| 三门峡市| 长丰县| 磴口县| 鄂托克旗| 开封县| 西充县| 定边县| 商洛市| 南江县| 当涂县| 府谷县| 资阳市| 铜陵市| 宜兰县| 新昌县| 巴南区| 黎城县| 会同县| 江口县| 石楼县|