異常處理.深度跟蹤

方式1:traceback捕捉堆棧詳細異常python

1.traceback模塊兒可打印異常發生時與函數調用堆棧相關的信息,函數可能多層嵌套,從被調用的函數依次搜索調用者並匹配異常處理程序,這個過程被稱爲"展轉開解",解釋器一方面維護放置堆棧中函數有關信息,另外一方面也維護着與已從堆棧中"展轉開解"函數有關信息函數

2.traceback模塊兒print_exc()方法直接打印堆棧異常無返回,format_exc()方法返回堆棧異常信息spa

import traceback


try:
    rhandler = open('unused.txt', 'r+b')
except IOError as io_err:
    rhandler = None
    traceback.print_exc()
finally:
    if rhandler: rhandler.close()

方式2:sys回溯最後異常code

1.sys.exc_info()返回值是一個tuple,(異常的類型, 異常的信息或參數, 調用堆棧的信息對象)orm

import sys


try:
    rhandler = open('unused.txt', 'r+b')
except IOError as io_err:
    rhandler = None
    exc_type, exc_value, exc_trace = sys.exc_info()
    print '''\
    type : %s
    value: %s
    trace: %s
    ''' % (exc_type, exc_value, exc_trace)
finally:
    if rhandler: rhandler.close()
相關文章
相關標籤/搜索