この記事では、PHP エラー処理の実装方法について説明します。
phpでエラー、警告、例外処理を実装する方法、対応するエラーを処理するためにどの関数が使用されるか
php例外プロンプトはエラー/警告/通知の3つのカテゴリに分類されます
エラー補足:
致命的エラー: 致命的なエラー(スクリプトは Run を終了しました)
E_ERROR // 致命的な実行エラー。エラーは回復できず、スクリプトの実行は中断されます
E_CORE_ERROR // PHP 起動時の初期化プロセス中に致命的なエラーが発生しました
E_COMPILE_ERROR // 致命的なエラーZend スクリプト エンジンと同様に、コンパイル中に E_ERROR
E_USER_ERROR // カスタム エラー メッセージが生成されました。 PHP 関数 trigger_error を使用する場合と同様 (エラー タイプは E_USER_ERROR に設定されます)
E_RECOVERABLE_ERROR // 捕捉できる致命的なエラー。 これは、潜在的に危険なエラーが発生したが、PHP エンジンが不安定になる原因ではなかったことを示します。
解析エラー: コンパイル時の解析エラー、構文エラー (スクリプトの実行が終了します)
E_PARSE //コンパイル時の構文解析エラー
警告補足: 警告エラー (プロンプト情報のみが提供され、スクリプトの実行は終了しません)
E_WARNING // 実行時警告 (致命的ではないエラー)。
E_CORE_WARNING // PHP の初期化起動中に発生した警告 (致命的ではないエラー)。
E_COMPILE_WARNING // コンパイル警告
E_USER_WARNING // ユーザーによって生成された警告情報
例外通知補足: 通知エラー (通知情報のみが提供され、スクリプトは操作を終了しません)
E_NOTICE // 実行時通知。スクリプトがエラーとして表示される可能性のある状況に遭遇したことを示します
E_USER_NOTICE // ユーザーによって生成された通知情報。
php エラー処理の実装:
register_shutdown_function('funcName') // パラメーターはエラーをキャプチャする必要がある関数の名前ですが、register_shutdown_function は実行時の致命的なエラーのみをキャプチャできますが、解釈中の実行エラーはキャプチャできません。プログラムです 実行完了後に実行される関数です (構文エラーなど、実行時に生成されたエラーはキャプチャされません)
set_error_handler('funcName') //パラメータは、コールバックの関数名です。キャプチャされた関数は、 register_shutdown_function とは異なり、関数の実行中にエラーをキャプチャします
ターゲット ファイルでエラーが発生すると、システムは指定された関数をコールバックします:
例:
register_shutdown_function( "fatal_handler" ); set_error_handler("error_handler"); define('E_FATAL', E_ERROR | E_USER_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_RECOVERABLE_ERROR| E_PARSE ); //获取fatal error function fatal_handler() { $error = error_get_last(); if($error && ($error["type"]===($error["type"] & E_FATAL))) { $errno = $error["type"]; // $errfile = $error["file"]; $errline = $error["line"]; $errstr = $error["message"]; error_handler($errno,$errstr,$errfile,$errline); } }
//すべてのエラーを取得します
function error_handler($errno,$errstr,$errfile,$errline){ $str=<< "errno":$errno "errstr":$errstr "errfile":$errfile "errline":$errline EOF; //获取到错误可以自己处理,比如记Log、报警等等 echo $str; } //error_get_last() 捕获到的执行错误结果 //error_clear_last() 清除最后一次产生的错误信息
//上記の 2 つは、すべてのエラー、警告、および例外をキャプチャできますが、パフォーマンス上の理由から、警告例外をキャプチャするために使用することはお勧めできません
この記事では、エラー処理方法を紹介します。関連する内容については、ご注意ください。 PHP中国語ウェブサイトへ。
関連する推奨事項:
PHP は、配列のどの列にある多次元配列の指定された値をどのように取得しますか?
以上がPHPのエラー処理と実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。