1

私は現在PHPで働いています。私が構築している CMS のエラー システムに取り組んでいます (楽しみのために)。私のシステム (php コンパイラではない) の致命的なエラーについては、組み込みの Exception クラスを拡張する FatalException クラスを作成しました。これらのタイプのエラーはとにかくシステムを停止させるので、__construct に exit を挿入しました。

    class FatalException extends Exception{  
        public function __construct($message) {
            exit("<h1 style='color:red;' >FATAL ERROR: $message </h1>");
        }
    }

したがって、私のコードでは、データベースへの接続などを確認し、それができない場合は FatalException("データベースに接続できません: $database_error_message") をスローします。try/catch ブロックにはなりません。

たとえば、コードを実行してデータベースに接続できない場合、画面に表示されるのは大きな赤い文字の文章だけです。それで問題なく動作しますが、これは悪い習慣/コーディングですか?

編集:

実際には、このように始まったわけではありません。私はもともとエラーをログに記録してからキャッチ領域で終了していましたが、とにかくすべての致命的なエラーが終了する場合は、コンストラクターに入れるだけだと思いました。それから、出ようとしているキャッチ エリアに実際に到達していないことに気付きました。そのため、文を try/catch ブロックに入れることは、ちょっとした問題点でした。それは質問につながります。

4

3 に答える 3