码迷,mamicode.com
首页 > 编程语言 > 详细

python之traceback

时间:2018-01-17 20:24:18      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:代码   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 traceback

try:
    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.py

import traceback
import sys

def 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,os

def lumberjack():
    bright_side_of_death()

def bright_side_of_death():
    print traceback.extract_stack()
    return 0

if __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

标签:代码   dea   handle   func   ioerror   print   name   允许   post   

原文地址:https://www.cnblogs.com/hester/p/8304920.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!