cgitb モジュールでは、Python スクリプトのための特殊な例外処理を 提供します。(実はこの説明は少し的外れです。このモジュールはもともと 徹底的なトレースバック情報を CGI スクリプトで生成した HTML 内に表示 するための設計されました。その後この情報を平文テキストでも 表示できるように一般化されています。) このモジュールの有効化後に捕捉されない例外が生じた場合、 詳細で書式化された報告が Web ブラウザに送信されます。この報告には 各レベルにおけるソースコードの抜粋が示されたトレースバックと、現在動作 している関数の引数やローカルな変数が収められており、問題のデバッグを 助けます。オプションとして、この情報をブラウザに送信する代わりに ファイルに保存することもできます。
この機能を有効化するためには、単に自作の CGI スクリプトの最初に以下の一行を 追加します:
import cgitb; cgitb.enable()
enable() 関数のオプションは、報告をブラウザに表示するか どうかと、後で解析するためにファイルに報告をログ記録するかどうかを 制御します。
[display[, logdir[, context [, format]]]]) |
sys.excepthook
を設定することで、
インタプリタの標準の例外処理を cgitb モジュールに肩代わり
させるようにします。
オプションの引数 display は標準で 1
になっており、
この値は 0
にしてトレースバックをブラウザに送らないように抑制する
こともできます。引数 logdir はログファイルを配置する
ディレクトリです。オプションの引数 context は、トレースバック
の中で現在の行の周辺の何行を表示するかです; この値は標準で 5
です。
オプションの引数 format が "html"
の場合、出力は
HTML に書式化されます。その他の値を指定すると平文テキストの出力を
強制します。デフォルトの値は "html"
です。
[info]) |
sys.exc_info()
によって返される値と全く
同じです。info 引数が与えられていない場合、現在の
例外は sys.exc_info()
から取得されます。