Python標準庫-traceback模組

來源:互聯網
上載者:User
Example 2-18 展示了 traceback 模組允許你在程式裡列印異常的跟蹤返回
(Traceback)資訊, 類似未捕獲異常時解譯器所做的. 如 Example 2-18 所示. 2.11.0.1. Example
2-18. 使用 traceback 模組列印跟蹤返回資訊 File: traceback-example-1.py # note!
import

Example 2-18 展示了 traceback 模組允許你在程式裡列印異常的跟蹤返回 (Traceback)資訊, 類似未捕獲異常時解譯器所做的. 如 Example 2-18 所示.

2.11.0.1. Example 2-18. 使用 traceback 模組列印跟蹤返回資訊
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

 

Example 2-19 使用 StringIO 模組將跟蹤返回資訊放在字串中.

2.11.0.2. Example 2-19. 使用 traceback 模組將跟蹤返回資訊複製到字串
File: traceback-example-2.py

import traceback
import StringIO

try:
raise IOError, "an i/o error occurred"
except:
fp = StringIO.StringIO()
traceback.print_exc(file=fp)
message = fp.getvalue()

print "failure! the error was:", repr(message)

failure! the error was: 'Traceback (innermost last):/012 File
"traceback-example-2.py", line 5, in ?/012IOError: an i/o error
occurred/012'

 

你可以使用 extract_tb 函數格式化跟蹤返回資訊, 得到包含錯誤資訊的列表, 如 Example 2-20 所示.

2.11.0.3. Example 2-20. 使用 traceback Module 模組編碼 Traceback 對象
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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.