Python中的traceback模組

2021-09-06 01:22:51 字數 1430 閱讀 6702

python中的traceback模組

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

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

tracebacktest()

h:\pythonworkspace\test\src\tracebacktest.py line: 5 in tracebacktest

raise syntaxerror, "traceback test"

** : traceback test

python異常處理模組之traceback

為了更直觀的顯示錯誤並將其異常詳情列印出來故使用traceback來實現,下面是對其的詳細介紹 下面來介紹traceback模組來進行處理 首先 import traceback try 1 0 except exception,e print e 輸出結果是integer division or ...

python中 python中的 與

這一部分首先要理解python記憶體機制,python中萬物皆物件。對於不可變物件,改變了原來的值,其別名 變數名 繫結到了新值上面,id肯定會改變 對於可變物件,操作改變了值,id肯定會變,而 是本地操作,其值原地修改 對於 號操作,可變物件和不可變物件呼叫的都是 add 操作 對於 號操作,可變...

python中的物件 Python中的變數 物件

由於沒時間系統學習下python 只能見乙個問題 乙個問題了 一 初級 物件 關於python中的資料型別,今天重新認識了下。參考 首先,python中,物件才有型別,變數是沒有型別的,它只是物件的 引用 其次,python中物件被分為兩類 可更改物件和不可更改物件 包括numbers,string...