<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 閱讀(1257) 評(píng)論(0)  編輯  收藏 所屬分類: Python

    traceback 的處理

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

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

    這里只是簡(jiǎn)單的對(duì)traceback模塊的介紹,不是一個(gè)完整的說明,而且只是滿足我個(gè)人的要求, 更詳細(xì)的還是要看文檔。

    打印完整的traceback

    讓我們先看一個(gè)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有一個(gè)頭:第一行,出錯(cuò)詳細(xì)位置:第二、三行, 異常信息:第四行。也就是說分為三部分,而在traceback可以分別對(duì)這三部分進(jìn)行處理。 不過我更關(guān)心完整的顯示。

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

    &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

    當(dāng)出現(xiàn)異常sys.exc_info()函數(shù)會(huì)返回與異常相關(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()返回一個(gè)tuple,異常類,異常實(shí)例,和traceback。

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

    &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返回一個(gè)字符串列表,這樣我們就可以將其應(yīng)用到我們的程序中了。
    主站蜘蛛池模板: 亚洲国产精品无码观看久久| 最新国产乱人伦偷精品免费网站| 亚洲国产精品一区二区三区久久| 大妹子影视剧在线观看全集免费| 亚洲国产精品lv| 免费看少妇作爱视频| 一本到卡二卡三卡免费高| 中文字幕亚洲综合久久| 日本黄色免费观看| 野花香高清视频在线观看免费| 97久久国产亚洲精品超碰热| 久久久久亚洲精品天堂久久久久久| 8090在线观看免费观看| 国产精品亚洲片在线花蝴蝶| 亚洲狠狠久久综合一区77777| 国产精品麻豆免费版| 日韩在线不卡免费视频一区| 国产亚洲综合一区二区三区| 久久精品国产亚洲av水果派 | 国产四虎免费精品视频| 丰满妇女做a级毛片免费观看 | 亚洲一区二区三区国产精品无码 | 香蕉大伊亚洲人在线观看| 激情97综合亚洲色婷婷五| 成人黄软件网18免费下载成人黄18免费视频 | 国产成人亚洲精品蜜芽影院| 4444亚洲国产成人精品| 国产精品亚洲产品一区二区三区 | 亚洲女女女同性video| 久久亚洲一区二区| 亚洲国产电影av在线网址| 无码日韩人妻av一区免费| 国产精成人品日日拍夜夜免费| 香港经典a毛片免费观看看| 亚洲AV成人噜噜无码网站| 亚洲男人的天堂www| 亚洲JIZZJIZZ中国少妇中文| 青青草国产免费久久久91| 一二三四在线观看免费高清中文在线观看| 久久免费精彩视频| 国产一二三四区乱码免费|