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)typeがSyntaxErrorであり、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