ホームページ  >  記事  >  バックエンド開発  >  PHP のエラー処理と実装 - CSDN ブログ

PHP のエラー処理と実装 - CSDN ブログ

不言
不言オリジナル
2018-04-13 10:23:091413ブラウズ

この記事では、PHP のエラー処理と実装について紹介します。必要に応じて参照してください。

1.php でのエラー、警告、例外処理の実装方法と機能。対応するエラーを処理するために使用されます



php 例外プロンプトは、エラー/警告/通知の 3 つのカテゴリに分類されます
エラー補足:
Fatal Error: 致命的なエラー (スクリプトが操作を終了します)
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 とは異なり、関数の実行中にエラーをキャプチャします


実行中にターゲット ファイルにエラーが発生すると、システムは指定された関数をコールバックします:
例:

<?php
		register_shutdown_function( "fatal_handler" );
		set_error_handler("error_handler");
		define(&#39;E_FATAL&#39;,  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);
		  }
		}
		//获取所有的error
		function error_handler($errno,$errstr,$errfile,$errline){
		    $str=<<<EOF
		         "errno":$errno
		         "errstr":$errstr
		         "errfile":$errfile
		         "errline":$errline
			EOF;
		//获取到错误可以自己处理,比如记Log、报警等等
		    echo $str;
		}


		//error_get_last() 捕获到的执行错误结果


		//error_clear_last() 	清除最后一次产生的错误信息


		//上面两者可以捕获所有错误,警告, 异常,但作性能考虑,不建议使用其捕获警告异常

関連する推奨事項:

PHP の簡単な分析 エラー処理、自動ロード、スタック メモリ、実行モード

PHP エラー処理インスタンス メソッド

PHP エラーと例外のデバッグ ビデオ チュートリアル リソース共有













以上がPHP のエラー処理と実装 - CSDN ブログの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。