PHP7でのPHPエラー
はじめに
バージョン7より前は、PHPパーサーはさまざまな条件に応じてエラーを報告するために使用されていました。各エラーは、以前は特定の事前定義されたタイプでした。 PHP7は、エラー報告のメカニズムを変更しました。従来のエラー報告の代わりに、ほとんどのエラーはエラー例外をスローすることによって報告されるようになりました。
エラー例外が処理されない場合、致命的なエラーが報告され、従来のエラー状態と同様に処理されます。 PHPのエラー階層はスロー可能から始まります インターフェース。 ArithmeticErrorなどの事前定義されたすべてのエラー 、 AssertionError 、 ComputeError およびTypeError Throwableiterfaceを実装するクラスです。 PHP 7の例外は、Throwableインターフェースも実装しています。
スロー可能なインターフェイスは、エラーなど、throwステートメントを介してスローできるオブジェクトのベースとして機能します。 および例外 オブジェクト。ユーザー定義クラスは、Throwableインターフェースを直接実装することはできません。代わりに、ユーザー定義の例外クラスを宣言するには、例外を拡張する必要があります クラス。
PHPの例外処理は、スローで構成されています 、キャッチ 、試してください ステートメント。例外オブジェクトを発生させるには、スローがあります キーワード。スローされた例外はcatchによって処理されます ブロック。例外に対して潜在的に脆弱なPHPコードは、 tryで囲まれています。 ブロック。
Exceptionクラスのさまざまなインスタンスをキャッチするために、1つ以上のcatchブロックが存在する場合があります。 tryブロックで例外が発生しない場合、通常の実行は最後のcatchブロックの後も続行されます。ただし、tryブロック内で例外がスローされると、nestステートメントが実行される代わりに、PHPは処理される例外のタイプに一致するcatchブロックを見つけようとします。一致するcatchブロックが定義されていない場合、PHPパーサーは致命的なエラーを報告します キャッチされない例外 メッセージ。
最後に提供することもできます キャッチブロックの後または代わりにブロックします。 finallyブロック内のコードは、tryブロック内で例外が発生するかどうかに関係なく、常に実行されます。
-
PHPのerror_reporting()関数
error_reporting()関数は、報告されるエラーを指定します。実行時にerror_reportingディレクティブを設定します。 PHPには多くのレベルのエラーがあります。この関数を使用すると、スクリプトの期間(実行時間)にそのレベルが設定されます。レベルパラメータが指定されていない場合は、古いエラー報告レベルまたは現在のエラー報告レベルを返します。 構文 error_reporting(level) パラメータ レベル −現在のスクリプトのエラーレポートレベルを指定します。値番号と定数名が受け入れられます。 戻る error_reporting()関数は、古いエラー報告
-
PHPのerror_get_last()関数
error_get_last()関数は、最後に発生したエラーを連想配列として取得します。連想配列には4つのキーが含まれています- [タイプ]-エラータイプについて説明します [メッセージ]-エラーメッセージについて説明します [ファイル]-エラーが発生したファイルについて説明します [行]-エラーが発生した行を説明します 構文 error_get_last() パラメータ NA 戻る error_get_last()関数は、キー「type」、「message」、「file」、および「line」を使用して最後のエラーを記述する連想配列を返します。エラーがまだ