ホームページ >バックエンド開発 >PHPチュートリアル >PHP カスタム エラー処理関数_PHP チュートリアル
PHP 開発では、通常、PHP の組み込みエラー処理メソッドを使用して一部のエラーを処理しますが、一部のエラーについては、システム独自のエラー処理メソッドでは解決できない問題を解決するために、いくつかのエラー処理メカニズムをカスタマイズする必要があります。
基本的なエラー処理: die() 関数を使用します
最初の例は、テキスト ファイルを開く単純なスクリプトを示しています:
コードは次のとおりです | コードをコピー |
$file=fopen("welcome.txt","r"); ?> |
ファイルが存在しない場合は、次のようなエラーが表示されます:
警告: fopen(welcome.txt) [function.fopen]: ストリームを開けませんでした:
C:webfoldertest.php の 2 行目にそのようなファイルまたはディレクトリはありません。上記のようなエラー メッセージがユーザーに表示されるのを避けるために、ファイルにアクセスする前にファイルが存在するかどうかを確認します。
コードをコピー | ||
if(!file_exists("welcome.txt")) { die("ファイルが見つかりません"); } それ以外 { $file=fopen("welcome.txt","r"); } ?> |
コードは次のとおりです | コードをコピー |
関数 myErrorHandler($errno, $errstr, $errfile, $errline){ functiontrigger_test($age){//エラーをスローする関数をテストします
関数 myNtice($errno, $errstr, $errfile, $errline){ |
//異なるエラーレベルを個別に処理したい場合:
コードは次のとおりです | コードをコピー |
set_error_handler('myError',E_USER_ERROR); set_Exception_handler('myWarning',E_USER_WARNING); set_Exception_handler('myNtice',E_USER_NOTICE); |
trigger_error('意図的にエラー、または重大なエラーをスローしました!', E_USER_ERROR);
以下にいくつかのPHPエラーコードの詳細な説明を添付します
パラメータ | 説明 |
---|---|
エラーレベル |
必須。ユーザー定義エラーのエラー報告レベルを指定します。値である必要があります。 以下の表を参照してください: エラー報告レベル。 |
エラーメッセージ | 必須。ユーザー定義エラーのエラー メッセージを指定します。 |
エラーファイル | オプション。エラーが発生したファイルの名前を指定します。 |
error_line | オプション。エラーが発生した行番号を指定します。 |
エラーコンテキスト | オプション。エラーが発生したときに使用されていた各変数とその値を含む配列を指定します。 |
エラー報告レベル
これらのエラー レポート レベルは、エラー ハンドラーが処理するように設計されているさまざまな種類のエラーです。
価値 | 定数 | 説明 |
---|---|---|
2 | E_警告 | 致命的ではない実行時エラー。スクリプトの実行を一時停止しないでください。 |
8 | E_NOTICE |
実行時の通知。 スクリプト検出エラーが発生する可能性がありますが、スクリプトが正常に実行されているときに発生することもあります。 |
256 | E_USER_エラー | ユーザーが生成した致命的なエラー。これは、プログラマが PHP 関数trigger_error()を使用して設定する E_ERROR に似ています。 |
512 | E_USER_警告 | 致命的ではないユーザー生成の警告。これは、プログラマが PHP 関数 trigger_error() を使用して設定する E_WARNING に似ています。 |
1024 | E_USER_NOTICE | ユーザーが生成した通知。これは、プログラマが PHP 関数trigger_error() を使用して設定する E_NOTICE に似ています。 |
4096 | E_RECOVERABLE_ERROR | キャッチ可能な致命的なエラー。 E_ERROR と似ていますが、ユーザー定義のハンドラーによってキャッチされる可能性があります。 (set_error_handler() を参照) |
8191 | E_ALL |
レベル E_STRICT を除くすべてのエラーと警告。 (PHP 6.0 では、E_STRICT は E_ALL の一部です) |