PHP Webシステムの開発中に、E_ALL | E_STRICT
をerror_reportingに設定し、通知エラーを含むあらゆる種類のエラーを処理することは良い方法です。リリースされたPHP Webシステムで、どのタイプのエラーをシステムを停止する必要がありますか?
リリースされたシステムでは、通知エラーが発生したときにシステムを停止する必要がありますか?
E_ERRORが発生した場合にのみシステムを停止し、E_WARNING、E_NOTICE、E_STRICTなどの他のエラーはすべて無視する必要がありますか?
カスタムエラーハンドラでどの種類のエラーを処理し、システムを停止(終了)する必要がありますか?
警告はシステムを確実に停止させるはずです(しかし、元のエラー/例外ハンドラは残しておかないでください。独自のエラーハンドラはエラー情報を開示しません)。より少ないエラーレベルは決定的ではありませんが、少なくともそれらをログに記録してレポートを自分宛てに送信する必要があります。それはあなたがそれらを修正するよう動機づけるでしょう:) – DCoder
@DCoder良いアドバイスありがとう! E_WARNINGが発生したときにシステムを停止する理由を教えてください。 –
高可用性よりも正確さが重要であるほとんどのケースでは、「何があっても動いている」よりも「失敗する」が望ましいです。警告は、通常、何かが本当に間違っていたことを意味し、動くことは物事を悪化させるだけです。このサイトで最もよくある質問を考えてみましょう。["mysql_fetch_ expects parameter ...、boolean given"](http://stackoverflow.com/search?q=mysql+fetch+boolean+given)。最初の警告でスクリプトを停止しない場合は、繰り返し処理された警告の長いリストを取得し、さらに処理で失敗したクエリの結果を使用して他のデータを混乱させる可能性があります。 – DCoder