日々のプロジェクト開発プロセスでは、予期しない異常なエラーが常に発生します。これに比較的適切に対処しないと、プログラムは非常にプロフェッショナルに見えず、他の人にとってはシステム攻撃になる可能性があります。エラー例外によってスクリプトの実行が終了します。この時点でエラー メッセージが表示されない場合は、コードを最初から確認することしかできません。なんとも恐ろしいことです。では、プロジェクト開発中に例外やエラーを迅速かつ正確に特定し、それに応じて処理するにはどうすればよいでしょうか?そしてお互いに思い出として。
システムエラーハンドラー:
PHPの通常の状況では、エラーは正常に出力されますが、一部のフレームワークでは、フレームワーク自体が独自の処理機構を持っているか、エラー出力に影響を与える可能性があります。コードでは、一般に次の関数設定を行います:
1.error_reporting(); PHP のエラー報告レベルを設定し、現在のレベルを返します
error_reporting(report_level)
パラメーター レベルが指定されていない場合は、現在のエラー報告レベルが戻ってきます。以下の項目は、level の可能な値です:
ここで、$level が 0 の場合、エラー出力がオフになる、つまりエラーが出力されないことに注意してください。
2.set_error_handler()
定義と使用法
set_error_handler() 関数は、ユーザー定義のエラー処理関数を設定します。
この関数は、実行時にユーザー独自のエラー処理メソッドを作成するために使用されます。
この関数は古いエラー ハンドラーを返すか、失敗した場合は null を返します。
構文
set_error_handler(error_function,error_types)
ヒント: この関数を使用すると、標準の PHP エラー処理関数は完全にバイパスされ、必要に応じてユーザー定義のエラー ハンドラーを終了する必要があります (die())。 ) スクリプト、
注: スクリプトの実行前にエラーが発生した場合、その時点ではカスタム プログラムが登録されていないため、カスタム エラー ハンドラーは使用されません。
テストコードは次のとおりです:
/** * * @param type $error_level 错误级别 * @param type $error_message 错误信息 * @param type $error_file 可选 错误文件 * @param type $error_line 可选 错误行 * @param type $error_context 可选。规定一个数组,包含了当错误发生时在用的每个变量以及它们的值。 */ function my_error($error_level, $error_message, $error_file, $error_line, $error_context) { echo date('Y-m-d H:i:s') . $error_level . $error_message . $error_file . $error_line; var_dump($error_context); } set_error_handler('my_error', E_ALL); print_r($a);
//上記のケースから、my_errorメソッドを登録すると、システムは元のエラー処理error_fuction()メソッドを自動的に上書きすることがわかります
カスタムエラートリガー
定義と使用法
trigger_error() 関数は、ユーザー定義のエラー メッセージを作成します。
trigger_error() は、ユーザーが指定した条件下でエラー メッセージをトリガーするために使用されます。これは、組み込みエラー ハンドラー、または set_error_handler() 関数で作成されたユーザー定義関数とともに使用されます。
不正なエラータイプが指定された場合、この関数は false を返し、それ以外の場合は true を返します。
構文
trigger_error(error_message,error_types)
テストコードは次のとおりです:
/** * * @param type $level * @param type $msg */ function my_error($level, $msg) { switch ($level) { case E_USER_ERROR: echo "ERROR:<br/>"; break; case E_USER_WARNING: echo "WARNING:<br/>"; break; case E_USER_NOTICE: echo "NOTICE:<br/>"; break; default: break; } echo "错误编号:" . $level . " <br/>"; echo "错误信息:" . $msg; } //注册错误处理器 set_error_handler('my_error'); if (89 > 8) { //调用错误触发器 trigger_error('这是错误啊', E_USER_WARNING); }
実行結果は次のとおりです:
警告:
エラー番号: 512
エラーメッセージ: これはエラーです
以上です。これがこの記事のすべての内容です。皆さんに気に入っていただければ幸いです。
PHP エラー処理メカニズムに関連するその他の記事については、PHP 中国語 Web サイトに注目してください。