師匠の散歩

Perlで遊ぼう

エラーメッセージ表示

FireFox 3.6を使っているが、こちらはエラーログウインドーがあるので、だいたいどこでエラーが発生したかわかるが、使用しているIE6ではエラーログが表示されず、ソースを片っ端から読まないといけない。FireFoxにしても、エラーログウインドーでいちいち確認するのがめんどくさい(おい^^;)。

エラーが発生したときのメッセージ表示する方法は下の1行を付け加えるだけ。よそで紹介していた内容をコピーペーストしただけなので、モジュールの意味は分からないから書かない。

use CGI::Carp qw(fatalsToBrowser);

下記のような形式でエラーメッセージを出してくれる。エラーのほとんどがケアレスミスなので、行番号を表示してくれるのはありがたい。なお経験談で申し訳ないが、これをつけていて 500エラーが出たのは、文字コードがちゃんと設定できていない場合だったと思う。

<h1>Software error:</h1>
<pre>Prototype not terminated at atan2.cgi line 46. ← エラー内容で異なる
</pre>
<p>
For help, please send mail to the webmaster (<a href="mailto:hoge@hoge.net">hoge@hoge.net</a>), giving this error message 
and the time and date of the error.

さらに

もう少し調べてみたら、こんな書き方があった。

use warnings;
use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
warningsToBrowser(1);

致命的エラーのほかに、警告メッセージもブラウザに表示してくれるらしい。エラーログを読めばいいらしいが、レンタルサーバーでエラーログを見ることができない環境では大助かりだ。

設置場所は、「mainモジュール」のcgiファイルにだけ置いておけばいいようだ。呼び出すモジュールやパッケージに置かなくても、ちゃんとエラー出力してくれた。逆はだめだったと思う。確認めんどくさいな。


戻る
2010 grandmaster all rights reserved. 最終更新:2010/12/28