このモジュールは、インタプリタが使用したり変更したりする変数や、 インタプリタと強く関連する関数へのアクセスを提供します。 本モジュールは、いつでも使用可能です。
スタック上のいかなる場所にも、捕捉中の例外がなかった場合には、 3つの要素がNoneであるタプルを返します。 そうでなければ、返される値は、 (type, value, traceback) です。以下にその意味を示します。 type は、捕捉中の例外の例外タイプです (文字列またはクラスオブジェクト)。 valueは、例外のパラメータです (例外に関係した値またはraise文の第2引数であり、 例外タイプがクラスオブジェクトの場合は必ずクラスインスタンス となります)。 traceback は、トレースバックオブジェクト(リファレンスマニュアル を参照して下さい)であり、例外の発生元におけるコールスタックを要約します。
警告: 関数内のローカル変数にtracebackの値を代入すると、 循環呼出し(無限ループ)を引き起こします。 この性質は、同一関数内のローカル変数やトレースバックによって参照される 全てのものがガベージコレクトされるのを防いでいます。 ほとんどの関数では、トレースバックへのアクセスは必要ではないため、 上記問題を解決する最善策は、type, value = sys.exc_info()[:2] というように、例外タイプおよびその値のみ抽出することです。 もしトレースバックが必要なときには、 使用後にそのローカル変数を削除するか (try ... finally文で行うのが最善である)、 例外を捕捉中でない関数でexc_info()を 呼び出すようにして下さい。
これらはグローバル変数であり、現在のスレッドに特有の値ではありません。 したがって、マルチスレッドプログラムで使用した時には値の保証はありません。 いかなる例外も発生しなかった場合には、exc_typeは Noneに設定されて、 他の2つは定義されません。
各変数の意味は、exc_info()から返される値と同じです。 (Since there is only one interactive thread, thread-safety is not a concern for these variables, unlike for exc_type etc.)
このリストの最初の項目(path[0])は、パイソンインタプリタを起動するのに使用された スクリプトを含むディレクトリです。もし、スクリプトディレクトリが 入手不可能の場合には(たとえば、対話モードで起動された場合や 標準入力からスクリプトが読まれた場合)、path[0]は空の文字列であり、 パイソンがカレントディレクトリ内のモジュールを最初にサーチすることを示します。 このスクリプトディレクトリは、$PYTHONPATHによってエントリされる ディレクトリより前に挿入されることに注意してください。
guido@python.org