3.6 標準モジュール traceback

 

このモジュールは、パイソンプログラムのスタックトレースをフォーマットしたり 出力したりするための、標準的なインターフェースを提供します。 スタックトレース出力時に、パイソンインタプリタの動作を正確に模擬します。 これは、プログラムの制御下でスタックトレースを出力したいような場合、 例えば、インタプリタをラッパするような場合において、便利です。

モジュールは、トレースバックオブジェクトを使用します。 これは、変数sys.exc_tracebackおよびsys.last_traceback に格納されるオブジェクトタイプです。  

モジュールは以下の関数を定義します:

print_tb (traceback[, limit])
tracebackの スタックトレースのエントリのうち、 limitで指定された分(数字を指定) まで出力します。limitが無視またはNoneが与えられた場合には、 全てのエントリが出力されます。

extract_tb (traceback[, limit])
tracebackから前回処理されたスタックトレースのエントリ を抽出して、 limitで指定された分(数字を指定) までのリストを返します。 これは、スタックトレースのフォーマットにも便利です。 limitが無視またはNoneが与えられた場合には、 全てのエントリが抽出されます。 前回処理されたスタックトレースのエントリは、ファイル名、行番号、 関数名、行テキストの4つの要素をもっています。 これらの情報は、通常スタックトレースが出力されるのと同じものです。 行テキストは、先頭と最後の空白を取り除いた文字列です。プログラムソースが 見つからない場合は Noneとなります。

print_exception (type, value, traceback[, limit])
tracebackの スタックトレースのエントリのうち、 limitで指定された分(数字を指定) までの例外情報を出力します。 print_tb()との違いを以下に示します。: (1)tracebackが 非Noneであるとき、ヘッダーとして "Traceback (innermost last):"を出力します。 (2)例外のタイプ(type)と値(value)をスタックトレースの次に出力します。 (3)typeSyntaxErrorであり、valueが適切な フォーマットである場合、エラーのおよその位置を指す caretとともに、 Syntaxエラーが発生した行を出力します。

print_exc ([limit])
これは、`print_exception(sys.exc_type, sys.exc_value, sys.exc_traceback, limit)' の簡略版です。

print_last ([limit])
これは、`print_exception(sys.last_type, sys.last_value, sys.last_traceback, limit)' の簡略版です。

guido@python.org