php 例外およびエラー処理メカニズム
実際の開発では、エラーと例外をキャプチャするために try{}catch() のみに依存するだけでは十分ではありません。 したがって、次の関数を引用します。
まず例外について話しましょう:
まず第一に、例外とエラーは異なるものであることを理解する必要があります。一方、エラーは、未定義の変数の使用など、実行時のエラーを指します。例外をキャッチするにはスローする必要があり、エラーが発生するとプログラムの実行が終了します
1。例外を処理する通常の方法は、 throw
[ php] ビューによってスローされた例外をキャッチするために try{}catch{} を使用することです。
普通のコピー
- try{
- ); } catch(例外$e ){
-
エコー- $e ->getMessage(),
""- ,$e ->getTraceAsString() 2. 例外を設定します。取り扱いこの場合、try{}catch{} がなくても、set_Exception_handler 関数によってスローされた例外を自動的に設定できます。 [php] ビュー
普通のコピー
set_Exception_handler(- '例外ハンドラー'
);
関数 例外ハンドラー(例外
$例外){ - getMessage();
次にエラーについて説明します: - 通常、プログラムに問題が発生すると、PHP はデバッグに役立つエラー情報を出力します。この情報の出力は、error_reporting() 関数を通じて制御できます。 PHP のエラーはレベルとタイプに分けられます。以下はすべてのエラー タイプの説明です: E_ALL - すべてのエラーと警告 (E_STRICT を除く) E_ERROR - 致命的な実行時エラー E_WARNING - 実行時警告 (致命的ではない) E_PARSE -コンパイル時の解析エラー E_NOTICE - 実行時のリマインダー (コードのバグによって引き起こされることが多いか、意図的な動作によって引き起こされる可能性があります。) E_STRICT - エンコード標準化の警告。PHP が最適な相互運用性を確保するためにコードを変更する方法を提案できるようにし、上位互換性。 E_CORE_ERROR - PHP 起動の初期化プロセス中の致命的なエラー E_CORE_WARNING - PHP の起動初期化プロセス中の警告 (致命的ではないエラー) E_COMPILE_ERROR - コンパイル時の致命的なエラー E_COMPILE_WARNING - コンパイル時の警告 (致命的ではないエラー) E_USER_ERROR - ユーザー-定義されたエラー メッセージE_USER_WARNING - ユーザー定義の警告メッセージE_USER_NOTICE - ユーザー定義のリマインダー メッセージ
- error_reporting(E_NOTICE) が設定されている場合、プログラムは E_NOTICE レベルの情報のみを出力します。通常は、error_reporting( を設定する必要があるだけです) E_ALL&!E_WARNING) 上に、ユーザー定義のエラー メッセージ というエラーが表示されています。まずは例を見てみましょう[php]ビュー
普通のコピー
- set_error_handler('errorHandler');
- trigger_error("aaaaaaasssssssssss",E_USER_ERROR);
関数- errorHandler($errno, $errstr){ "white-space:pre"
- >/span>if($errno ==E_USER_ERROR ){ "white-space:pre"
- > $errstr"white-space:pre"; > } "white-space:pre"> 結果:
- [php]ビュー
普通のコピー
- innnnnnnni:aaaaaaasssssssssssss trigger_error() は、ユーザー定義のエラー メッセージをスローするために使用される関数です。これにより、重大なロジックの問題
など、エラーとして扱われるいくつかのカスタマイズされたメッセージをスローできます。 -
上記のプログラムでは、プログラムエラーが発生したときに、デフォルトで Php にエラーメッセージを出力させるだけでなく、独自のエラー処理関数を設定することもできることがわかります。設定方法は set_error_handler()
です。Take に従ってみましょう。例
[php] ビュー
普通のコピー
set_error_handler(- 'errorHandler');ちょ
$ cc
;
//$ccが定義されていない場合、エコーはエラーになります
function
errorHandler(
- $errno,$errstr){
- if ($エラー ==E_NOTICE){
- ; } }
出力結果: - ddddddddddddinnnnnnnni:未定義変数: cc
上記では、PHP の例外とエラー処理メカニズムを、関連コンテンツも含めて紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。