まつもと ゆきひろです
私自身は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 はま
ともに動作しません(ありがち ^^;;;).
まつもと ゆきひろ /:|)