標籤:代碼 dea handle func ioerror print name 允許 post
traceback 模組允許你在程式裡列印異常的跟蹤返回 (Traceback)資訊1.1 traceback.print_exc()
File: traceback-example-1.py# note! importing the traceback module messes up the# exception state, so you better do that here and not# in the exception handler# 注意! 匯入 traceback 會清理掉異常狀態, 所以# 最好別在異常處理代碼中匯入該模組import tracebacktry: raise SyntaxError, "example"except: traceback.print_exc()Traceback (innermost last): File "traceback-example-1.py", line 7, in ?SyntaxError: example
1.2 traceback.extract_tb
File: traceback-example-3.pyimport tracebackimport sysdef function(): raise IOError, "an i/o error occurred"try: function()except: info = sys.exc_info() for file, lineno, function, text in traceback.extract_tb(info[2]): print file, "line", lineno, "in", function print "=>", repr(text) print "** %s: %s" % info[:2]traceback-example-3.py line 8 in ?=> ‘function()‘traceback-example-3.py line 5 in function=> ‘raise IOError, "an i/o error occurred"‘** exceptions.IOError: an i/o error occurred
1.3 traceback.extract_stack
import sys,traceback,osdef lumberjack(): bright_side_of_death()def bright_side_of_death(): print traceback.extract_stack() return 0if __name__ == ‘__main__‘: lumberjack()
運行結果:
[(‘D:\\train\\python\\sample\\traceback\\sample.py‘, 12, ‘<module>‘, ‘lumberjack()‘), (‘D:\\train\\python\\sample\\traceback\\sample.py‘, 4, ‘lumberjack‘, ‘bright_side_of_death()‘), (‘D:\\train\\python\\sample\\traceback\\sample.py‘, 8, ‘bright_side_of_death‘, ‘print traceback.extract_stack()‘)]
python之traceback