PHPカスタムエラーハンドラー

(*-*)浩
リリース: 2023-02-23 22:14:01
オリジナル
2180 人が閲覧しました

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

PHPカスタムエラーハンドラー

# 幸いなことに、解決策はあります。

PHP には、開発者がスクリプト エラーをキャッチしてカスタム エラー ハンドラーに転送できるツールが組み込まれています。この時点で、プロセッサはエラーに関するより具体的な情報を表示するようにプログラムできます。 (推奨学習: PHP プログラミングの入門から熟練度まで )

エラーをファイルまたはデータベースに書き込んで、修復措置を講じることもできます。エラー メッセージを無視するようにプロセッサをプログラムできる場合があります。
この記事では、PHP のエラー処理 API を使用してユーザー定義のエラー ハンドラーを構築する方法と、スクリプト エラー情報を簡単かつわかりやすい方法で表示および管理する方法について説明します。


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

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

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

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

表 A


<?php
// display warnings and errors
error_reporting(E_WARNING | E_ERROR);
// this will generate a notice, which will never be displayed
echo $undefinedVar;
// this will generate a fatal error, which will be displayed
callUndefFunc();
?>
ログイン後にコピー

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

表 B

<?php
// turn off error display
// no errors will be displayed
error_reporting(0);
// this will generate a notice
echo $undefinedVar;
// this will generate a fatal error
callUndefFunc();
?>
ログイン後にコピー

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

表 C

<?php
// all errors will be displayed
error_reporting(E_ALL);
// this will generate a notice
echo $undefinedVar;
// this will generate a fatal error
callUndefFunc();
?>
ログイン後にコピー

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


以上がPHPカスタムエラーハンドラーの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート