ホームページ >バックエンド開発 >PHPチュートリアル >PHP カスタム エラー ハンドラーを使用してエラー情報を処理する_PHP チュートリアル

PHP カスタム エラー ハンドラーを使用してエラー情報を処理する_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:52:581147ブラウズ

あなたが PHP のベテランであれば、PHP スクリプトが失敗すると何が起こるかをご存知でしょう。この時点で、PHP パーサーは画面に「致命的エラー: 19 行目の未定義関数の呼び出し --」などのエラー メッセージを表示するため、プログラムはここで終了します。この情報は顧客を怖がらせ、すぐに相談の電話をしてくる可能性があります。

幸いなことに、解決策はあります。 PHP には、開発者がスクリプト エラーをキャッチし、カスタム エラー ハンドラーにルーティングできるツールが組み込まれています。この時点で、プロセッサはエラーに関するより具体的な情報を表示するようにプログラムできます。修復アクションのためにエラーをファイルまたはデータベースに書き込むこともできます。エラー メッセージを無視するようにプロセッサをプログラムできる場合もあります。

この記事では、PHP のエラー処理 API を使用してユーザー定義のエラー ハンドラーを構築する方法と、スクリプト エラー情報を簡単かつわかりやすい方法で表示および管理する方法について説明します。

エラーの種類とレポートレベル

基本から始めましょう。 PHP には、低レベルから高レベルまで、アテンション、警告、エラー (または致命的エラー) という 3 つの最も基本的なエラー タイプがあります。通常、警告や警告によってプログラムは終了しませんが、致命的なエラーはプログラムの中断を引き起こす危険なエラーです (未定義の関数の呼び出しや存在しないオブジェクトの参照など)。これらのエラーは、起動時、解析時、コンパイル時、または実行時に発生する可能性があります。

E_NOTICE、E_ERROR などのキーワードは、さまざまな種類とレベルのエラーを示すために使用されます。それらの詳細なリストは、PHP マニュアルに記載されています。

スクリプト段階でのエラー表示は、error_reporting() 関数によって制御されます。この関数は、エラー レベルごとに異なるパラメータを設定します。表 A は、この関数を使用して警告と致命的なエラーを報告するスクリプトを示しています。

テーブルA

// 警告とエラーを表示します
error_reporting(E_WARNING | E_ERROR);
// これにより通知が生成されますが、表示されることはありません
echo $unknownVar;
// これにより致命的なエラーが生成され、表示されます
callUndefFunc();
?>

表 B のコードを上記のコードと比較すると、リスト B ではエラー情報が隠蔽され、さらに致命的な情報も隠蔽されているため、エラー情報が表示されないことがわかります。

テーブルB

// エラー表示をオフにする
// エラーは表示されません
エラー報告(0);
// これにより通知が生成されます
echo $unknownVar;
// これは致命的なエラーを生成します
callUndefFunc();
?>

表 C のコードには、すべてのエラー メッセージと簡単な通知も表示されます。

テーブルC

// すべてのエラーが表示されます
エラー報告(E_ALL);
// これにより通知が生成されます
echo $unknownVar;
// これは致命的なエラーを生成します
callUndefFunc();
?>

上記の 3 つの例で示したように、error_reporting() 関数は、エラーが発生したときに画面に表示される内容を制御する上で非常に重要です。ここでキーワードが表示されているのは、エラーが発生しないというよりは、エラーが表示されないという意味です。したがって、致命的なエラー (不正な関数呼び出しなど) が発生した場合、プログラムは終了しますが、この時点ではユーザーにメッセージは表示されません。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632440.html技術記事 PHP のベテランであれば、PHP スクリプトが失敗すると何が起こるかをご存知でしょう。このとき、PHP パーサーは画面に「致命的エラー: 未定義関数の呼び出し...」などのエラー メッセージを表示します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。