posts - 431,  comments - 344,  trackbacks - 0
          traceback模塊被用來跟蹤異常返回信息. 如下例所示:
          import traceback
          try:
              raise SyntaxError, "traceback test"
          except:
              traceback.print_exc()

          將會在控制臺輸出類似結果:
          Traceback (most recent call last):
            File "H:\PythonWorkSpace\Test\src\TracebackTest.py", line 3, in <module>
              raise SyntaxError, "traceback test"
          SyntaxError: traceback test

          類似在你沒有捕獲異常時候, 解釋器所返回的結果.
          你也可以傳入一個文件, 把返回信息寫到文件中去, 如下:
          import traceback
          import StringIO
          try:
              raise SyntaxError, "traceback test"
          except:
              fp = StringIO.StringIO()    #創建內存文件對象
              traceback.print_exc(file=fp)
              message = fp.getvalue()
              print message

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

          import traceback
          import sys

          def 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:\PythonWorkSpace\Test\src\TracebackTest.py line: 7 in <module>
          tracebacktest()
          H:\PythonWorkSpace\Test\src\TracebackTest.py line: 5 in tracebacktest
          raise SyntaxError, "traceback test"
          ** <type 'exceptions.SyntaxError'>: traceback test




          posted on 2009-06-17 21:37 周銳 閱讀(9119) 評論(0)  編輯  收藏 所屬分類: Python
          主站蜘蛛池模板: 莎车县| 克山县| 邳州市| 镇平县| 常德市| 盱眙县| 永安市| 南靖县| 惠水县| 六枝特区| 湾仔区| 广昌县| 马尔康县| 祥云县| 荔浦县| 民县| 沅陵县| 长顺县| 社旗县| 肥东县| 阿拉善左旗| 宜兰市| 武鸣县| 正镶白旗| 墨玉县| 福州市| 沙田区| 青浦区| 弥渡县| 大庆市| 雷波县| 盖州市| 莱州市| 城固县| 高阳县| 东宁县| 新巴尔虎左旗| 嘉鱼县| 潢川县| 保山市| 越西县|