PHP では、エラー と 例外 の処理は、堅牢で安全なアプリケーションを維持するために不可欠です。エラーと例外を適切に処理すると、アプリケーションが予測どおりに動作し、ユーザーに有意義なフィードバックが提供され、デバッグや将来の改善のために問題が記録されるようになります。この記事では、PHP におけるエラーと例外の違い、PHP によるエラーの処理方法、エラーと例外処理のベスト プラクティスについて説明します。
PHP の エラー とは、プログラムの実行中に発生し、予期しない動作を引き起こし、多くの場合スクリプトの終了につながる状況を指します。 PHP には、エラーを処理および応答するためのいくつかの組み込みメカニズムが用意されています。
PHP には、発生する可能性のあるさまざまな種類のエラーがあります。
PHP では、error_reporting() 関数を使用するか、php.ini ファイルで error_reporting ディレクティブを設定することによって、どのタイプのエラーを報告するかを制御できます。
// Report all errors except E_NOTICE error_reporting(E_ALL & ~E_NOTICE); // Report all errors, including notices error_reporting(E_ALL); // Suppress all errors error_reporting(0);
最も一般的なエラー報告レベルは次のとおりです:
組み込みの PHP 関数を使用してエラーを処理できます。
例:
// Custom error handler function function customError($errno, $errstr) { echo "Error [$errno]: $errstr"; } // Set custom error handler set_error_handler("customError", E_WARNING); // Trigger a warning error echo $undefined_variable; // This will call the custom error handler
例:
// Report all errors except E_NOTICE error_reporting(E_ALL & ~E_NOTICE); // Report all errors, including notices error_reporting(E_ALL); // Suppress all errors error_reporting(0);
例外は、実行時エラーをより適切に処理できるようにするメカニズムです。従来のエラーとは異なり、例外を使用するとエラーを捕捉し、制御された方法で処理できます。
PHP では throw キーワードを使用して例外をスローできます。例外がスローされると、プログラムの通常のフローが中断され、制御は例外を処理できる最も近い キャッチ ブロック に渡されます。
// Custom error handler function function customError($errno, $errstr) { echo "Error [$errno]: $errstr"; } // Set custom error handler set_error_handler("customError", E_WARNING); // Trigger a warning error echo $undefined_variable; // This will call the custom error handler
例外をキャッチするには、try-catch ブロックを使用します。 try ブロックには例外をスローする可能性のあるコードが含まれており、catch ブロックには例外を処理するコードが含まれています。
// Trigger a custom user error trigger_error("This is a custom error!", E_USER_NOTICE);
例外がキャッチされると、例外クラスのオブジェクトが catch ブロックに渡されます。このオブジェクトには、次のような例外に関する有用な情報が含まれています。
PHP の組み込み Exception クラスを拡張することで、カスタム例外クラスを定義できます。これにより、キャッチして別の方法で処理できる、より具体的なタイプの例外を作成できます。
// Throwing an exception throw new Exception("Something went wrong!");
例外がスローされたがどの catch ブロックでもキャッチされなかった場合、PHP は 致命的エラー を生成し、例外がキャッチされなかったことを示すメッセージを表示します。これを防ぐには、スローされる可能性のある例外に対応する適切な try-catch ブロックがコードに含まれていることを常に確認してください。
php.ini のエラーログの例:
// Report all errors except E_NOTICE error_reporting(E_ALL & ~E_NOTICE); // Report all errors, including notices error_reporting(E_ALL); // Suppress all errors error_reporting(0);
エラー:
例外:
PHP では、アプリケーションが予期しない状況を適切に処理するために、エラー と 例外 の両方の処理が重要です。 エラーは通常、構文エラーや警告などの差し迫った問題に使用されますが、例外は実行時の問題を処理するためのより堅牢かつ柔軟な方法を提供します。違いを理解し、適切なコンテキストで適切なアプローチを使用することで、より信頼性が高く保守しやすい PHP アプリケーションを作成できます。
以上がPHP によるエラーと例外の処理方法: 包括的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。