まつもと ゆきひろです

私自身はCGIってものを作ったことはないのですが,原さん原作,
青山さん拡張,まつもと修正によるcgi-lib.rbのおかげもあって
CGIスクリプト言語として使って下さる方もいらっしゃるようです.

んで,昨日CGIスクリプト言語としてのRubyということについて考
えていたのですが,

  * Perlよりもコンパイル時に検出できるエラーが少ない

  * 異常事態があってもdieしない限り,なんとか動いてしまう
    Perlに対してRubyは異常があると例外で止まってしまう

という特徴により

  * ちゃんと例外処理をしないとスクリプトがHTML生成途中で止まっ
    てしまって,尻切れなページになってしまうが,切れたかどう
    かがはっきり分からない.

という問題(というかなんというか)があるなあ,という話になりま
した.んで,CGIでは例外発生時のバックトレースを標準出力に出
せば,ちっとはエラーがあったと言う意志表示になるのではないか,
という仮の結論が出ました.

というわけで,cgi-lib.rbの中で

  $stderr = STDOUT

という行を追加しました.今はcgi-lib.rbをrequireすると,全て
の場合に(テスト用に実行した時も含めて),バックトレースを標準
出力に出力するようになっていますが,これはCGIとして実行され
た場合(GETかPOSTで呼ばれた場合?)に限った方が良いかも知れま
せん.

どう思われますか?
                                まつもと ゆきひろ /:|)
p.s.
なお,1.1b3までのrubyにはバグがあって $stderr = STDOUT はま
ともに動作しません(ありがち ^^;;;).

                                まつもと ゆきひろ /:|)