<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    海上月明

    editer by sun
    posts - 162, comments - 51, trackbacks - 0, articles - 8
       :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理

    traceback 的處理

    Posted on 2008-03-07 18:01 pts 閱讀(1260) 評論(0)  編輯  收藏 所屬分類: Python

    traceback 的處理

    from::Limodou的學(xué)習(xí)記錄

    trackback在 Python 中非常有用,它可以顯示出現(xiàn)異常(Exception)時代碼執(zhí)行棧的情況。 但當我們捕捉異常,一般是自已的出錯處理,因此代碼執(zhí)行棧的信息就看不到了,如果還想顯 示的話,就要用到traceback模塊了。

    這里只是簡單的對traceback模塊的介紹,不是一個完整的說明,而且只是滿足我個人的要求, 更詳細的還是要看文檔。

    打印完整的traceback

    讓我們先看一個traceback的顯示:

    &gt;&gt;&gt; 1/0

    Traceback (most recent call last):
    File "", line 1, in -toplevel-
    1/0
    ZeroDivisionError: integer division or modulo by zero

    可以看出 Python 缺省顯示的traceback有一個頭:第一行,出錯詳細位置:第二、三行, 異常信息:第四行。也就是說分為三部分,而在traceback可以分別對這三部分進行處理。 不過我更關(guān)心完整的顯示。

    在traceback中提供了print_exc([limit[, file]])函數(shù)可以打印出與上面一樣的效果。 limit參數(shù)是限定代碼執(zhí)行棧的條數(shù),file參數(shù)可以將traceback信息輸出到文件對象中。缺省的話是輸出到錯誤輸出中。舉例:

    &gt;&gt;&gt; try:
    1/0
    except:
    traceback.print_exc()

    Traceback (most recent call last):
    File "", line 2, in ?
    ZeroDivisionError: integer division or modulo by zero

    當出現(xiàn)異常sys.exc_info()函數(shù)會返回與異常相關(guān)的信息。如:

    &gt;&gt;&gt; try:
    1/0
    except:
    sys.exc_info()

    (&lt;class exceptions.ZeroDivisionError at 0x00BF4CC0&gt;,
    &lt;exceptions.ZeroDivisionError instance at 0x00E29DC8&gt;,
    &lt;traceback object at 0x00E29DF0&gt;)

    sys.exc_info()返回一個tuple,異常類,異常實例,和traceback。

    print_exc()是直接輸出了,如果我們想得到它的內(nèi)容,如何做?使用 format_exception(type, value, tb [,limit]),type, value, tb分別對應(yīng) sys.exc_info()對應(yīng)的三個值。如:

    &gt;&gt;&gt; try:
    1/0
    except:
    type, value, tb = sys.exc_info()
    print traceback.format_exception(type, value, tb)

    ['Traceback (most recent call last):\n', ' File "", line 2, in ?\n',
    'ZeroDivisionError: integer division or modulo by zero\n']
    這樣,我們知道了format_exception返回一個字符串列表,這樣我們就可以將其應(yīng)用到我們的程序中了。
    主站蜘蛛池模板: 久久亚洲国产视频| 99久久精品免费视频| 久久久久亚洲av成人无码电影| 麻豆狠色伊人亚洲综合网站| 欧美男同gv免费网站观看| 国产精品亚洲一区二区在线观看 | 欧亚一级毛片免费看| 夭天干天天做天天免费看| 国产福利免费视频| 亚洲高清最新av网站| 亚洲人妻av伦理| 春暖花开亚洲性无区一区二区| 欧美男同gv免费网站观看| 亚洲一区二区三区不卡在线播放| 24小时在线免费视频| 青青视频免费在线| 亚洲综合久久1区2区3区| 日韩精品电影一区亚洲| 16女性下面无遮挡免费| 四虎国产精品成人免费久久 | 成人a毛片视频免费看| 亚洲尹人香蕉网在线视颅| 免费va在线观看| 波多野结衣免费在线观看| 国产精品九九久久免费视频| 亚洲国产精品免费观看 | 狼友av永久网站免费观看| a毛片免费在线观看| 亚洲成AV人片在线观看无| 日本免费网站观看| xxxxx免费视频| 国色精品va在线观看免费视频| 亚洲成人中文字幕| 亚洲色偷偷狠狠综合网| 成人免费看片又大又黄| 美女视频黄频a免费大全视频| 一级毛片完整版免费播放一区| 亚洲成aⅴ人片久青草影院| 久久国内免费视频| 99久热只有精品视频免费看| 亚洲av乱码一区二区三区|