よろしくお願いします。
私はエラー処理についていくつかの調査を行ってきましたが、何をすべきかをしっかりと理解しているとは思えません。
前文:私のコードはApacheにあり、ブラウザーで実行されます。私の目標にはコマンドラインの実行は含まれていません。
CGI :: Carp(fatalsToBrowser)の動作に、出力をキャプチャして自分のテンプレートページにスローしたり、電子メールで送信したりできるようにしたいのですが...fatalsToBrowserが機能しないことに気づきましたmod_perlを使用します。誰かが理由を知っていますか?Apache / mod_perlはどのように邪魔になっていますか?
最初の目標:コードがmod_perlまたはmod_cgiで実行されている場合に機能するものをまとめたいと思います。
2番目の目標:.NETのApplication_Error(global.asax内)およびPHPのset_exception_handler()およびset_error_handler()メソッドと同様のすべてのエラーをキャッチする高レベルのメソッドが必要です。これらを使用すると、厄介な/ gross try-catchステートメントでコードをラップすることなく、エラーが発生したときに制御を取得できます。
私が読んだ/レビューしたもの:
1.)PerlでのOO例外処理ですが、私が探していたものではありませんでした。私がキャッチしたいもののほとんどはdie()ingです。次のリンクにも、この記事は古く、廃止されていると書かれています。
2.)Perl:$ SIG {__ DIE __}、eval {}、およびスタックトレースですが、これは私の目標に関連してあまり得られませんでした。
3.)実用モードPerl(O'Reilly)、第21章「エラー処理とデバッグ」。ありがたいことに、私のperlコードはすべてstrictを使用しており、警告が有効になっています。第6章「mod_perlを使用したコーディング」で説明した最も重要なことはすでに実行されています。
4.)「LearningPerl」、「Perl Cookbook」、「Programming Perl」、「Higher Order Perl」の目次を調べましたが、目立つものは何も見つかりませんでした。私がそこで何かを逃したと思うなら、私に知らせてください。:)
どこにあるのか覚えていません(おそらく「Practicalmod_perl」にありますが、$SIG{__DIE__}をいじってはいけないことを読みました。