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 周銳 閱讀(9109) 評論(0)  編輯  收藏 所屬分類: Python
          主站蜘蛛池模板: 彰武县| 云梦县| 八宿县| 苍南县| 钟祥市| 赤壁市| 泾阳县| 公安县| 黄大仙区| 罗田县| 曲麻莱县| 阜新市| 温州市| 泰州市| 浦江县| 潍坊市| 广昌县| 开化县| 崇礼县| 中卫市| 普洱| 勐海县| 平远县| 黄山市| 三河市| 崇左市| 景德镇市| 林西县| 嘉峪关市| 大足县| 明水县| 昭觉县| 抚远县| 陇川县| 彰化县| 滕州市| 阳谷县| 昌宁县| 咸阳市| 张家川| 永吉县|