方式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()