それでは、エラーを処理する関数を作成しましょう: function CustomError($errno, $errstr) { echo "Error: [$errno] $errstr echo "スクリプトの終了"; die(); } 上記のコードは、単純なエラー処理関数です。トリガーされると、エラー レベルとエラー メッセージが取得されます。次に、エラー レベルとメッセージを出力し、スクリプトを終了します。 エラー処理関数を作成したので、関数をいつ起動するかを決定する必要があります。 エラー ハンドラーを設定する PHP のデフォルトのエラー ハンドラーは、組み込みのエラー ハンドラーです。スクリプトの実行時に、上記の関数をデフォルトのエラー ハンドラーに変換します。 エラー ハンドラーは、特定のエラーにのみ適用されるように変更できるため、スクリプトはさまざまな方法でさまざまなエラーを処理できます。ただし、この場合、すべてのエラーに対してカスタム エラー ハンドラーを使用します。 set_error_handler("customError"); カスタム関数ですべてのエラーを処理したいため、set_error_handler() のみが必要です。パラメータは 1 つだけです。 2 番目のパラメータを追加してエラー レベルを指定できます。 例 存在しない変数を出力してこのエラー ハンドラーをテストします: //error handler function function customError($errno, $errstr) { echo "Error: [$errno] $errstr"; } // エラー ハンドラーを設定します set_error_handler("customError"); // エラーをトリガーします echo($ test); ?> 上記のコードの出力は次のようになります: カスタム エラー: [8] 未定義変数: test トリガー エラー ユーザーがデータを入力するスクリプト内で、ユーザーの入力が無効です。エラーを引き起こす場合に役立ちます。 PHP では、このタスクはtrigger_error() によって実行されます。 例 この例では、「test」変数が「1」より大きい場合、エラーが発生します: $test=2; if ($test>1 ) { trigger_error("値は 1 以下である必要があります"); } ?> 上記のコードの出力は次のようになります: 注意: 値は 1 以下である必要があります C では:webfoldertest.php 行 6 2 番目のパラメーターを追加することで、トリガーされるエラー レベルを指定できます。 考えられるエラーの種類: E_USER_ERROR - ユーザーが生成した致命的な実行時エラー。エラーは回復できません。スクリプトの実行が中断されました。 E_USER_WARNING - 致命的ではないユーザー生成の実行時警告。スクリプトの実行は中断されません。 E_USER_NOTICE - デフォルト。ユーザーが生成した実行時通知。スクリプトは、スクリプトが正常に実行されているときに発生した可能性のあるエラーを検出しました。 例 この例では、「test」変数が「1」より大きい場合、E_USER_WARNING エラーが発生します。 E_USER_WARNING が発生した場合、カスタム エラー ハンドラーを使用してスクリプトを終了します。 //error handler function function customError($errno, $errstr) { echo " < b>エラー: [$errno] $errstr "; echo "スクリプトの終了"; die(); } //エラー ハンドラーを設定します set_error_handler("customError ", E_USER_WARNING); //trigger error $test=2; if ($test>1) { trigger_error("値は 1 以下である必要があります",E_USER_WARNING); } ?> 出力上記のコードは次のようになります: エラー: [512] 値は 1 以下である必要があります スクリプトの終了 独自のエラーを作成する方法と、それらを罰する方法を学習したところで、エラー ログについて学習しましょう。 。 エラーログ デフォルトでは、PHP は、php.ini の error_log 設定に従って、エラーレコードをサーバーのエラーログシステムまたはファイルに送信します。 error_log() 関数を使用すると、指定したファイルまたはリモートの宛先にエラー レコードを送信できます。 電子メールでエラー メッセージを自分に送信することは、特定のエラーの通知を受け取るための優れた方法です。 電子メールでエラー メッセージを送信する 以下の例では、特定のエラーが発生した場合、エラー メッセージを含む電子メールを送信し、スクリプトを終了します: // エラー ハンドラーfunction function CustomError($errno, $errstr) { echo "エラー: [$errno] $errstr "; echo "ウェブマスターに通知されました" ; error_log("Error: [$errno] $errstr",1, "someone@example.com","From: webmaster@example.com"); } //エラー ハンドラーを設定します set_error_handler ("customError",E_USER_WARNING); //トリガーエラー $test=2; if ($test>1) { trigger_error("値は 1 以下である必要があります",E_USER_WARNING);
} ?> 上記のコードの出力は次のようになります: エラー: [512] 値は 1 以下である必要があります ウェブマスターに通知されました 上記のコードから受信した電子メールは次のようになります。これに: エラー: [ 512] 値は 1 以下である必要があります このメソッドはすべてのエラーに適しているわけではありません。一般的なエラーは、デフォルトの PHP ログ システムを使用してサーバーに記録される必要があります。 |