PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHP7の例外とエラー


以前のバージョンのPHPでは、例外しか処理できませんでした。エラーを処理できませんでした。致命的なエラーの場合、アプリケーション全体またはアプリケーションの一部を停止するために使用されていました。この問題を克服するために、PHP7は例外とエラーの両方を処理するためのthrowableinterfaceを追加しました。

例外: 致命的で回復可能なエラーが発生した場合は常に、PHP 7は、アプリケーションまたはスクリプトの実行全体を停止する代わりに、例外をスローします。

エラー: PHP 7は、TypeError、ArithmeticError、ParserError、およびAssertionErrorをスローしますが、警告および通知エラーは変更されません。 try / catchブロックを使用すると、エラーインスタンスをキャッチでき、FatalErrorsがエラーインスタンスをスローできるようになりました。 PHP 7では、スローアブルインターフェイスが追加され、スローアブルを実装するために2つの例外ブランチExceptionとErrorが統合されています。

<?php
   class XYZ {
      public function Hello() {
         echo "class XYZ\n";
      }
   }
   try {
      $a = new XYZ();
      $a->Hello();
      $a = null;
      $a->Hello();
   }
   catch (Error $e) {
      echo "Error occurred". PHP_EOL;
      echo $e->getMessage() . PHP_EOL ;
      echo "File: " . $e->getFile() . PHP_EOL;
      echo "Line: " . $e->getLine(). PHP_EOL;
   }
   echo "Continue the PHP code\n";
?>
出力

上記のプログラムでは、次のエラーが発生します-

class XYZ
Error occurred
Call to a member function Hello() on null
File: /home/cg/root/9008538/main.php
Line: 11
Continue with the PHP code

注: 上記の例では、nullオブジェクトのメソッドを呼び出します。キャッチは、例外を処理してからPHPコードを続行するために使用されます。

算術エラー

算術エラーのDivisionByZeroErrorを使用します。それでも、除算演算子で警告エラーが発生します。

例:算術エラー

<?php
   $x = 10;
   $y = 0;
   try {
      $z = intdiv($x , $y);
   }
   catch (DivisionByZeroError $e) {
      echo "Error has occured\n";
      echo $e->getMessage() . PHP_EOL ;
      echo "File: " . $e->getFile() . PHP_EOL;
      echo "Line: " . $e->getLine(). PHP_EOL;
   }
   echo "$z \n";
   echo " continues with the PHP code\n";
?>

出力

上記のプログラムの出力は、警告エラー-

で実行されます。
Division by zero
File: /home/cg/root/9008538/main.php
Line: 5
continues with the PHP code

注: 上記のプログラムでは、intdiv()関数内のDivisionByZeroErrorをキャッチして報告します。


  1. PHPのuser_error()関数

    user_error()関数は、PHPのtrigger_error()関数のエイリアスです。これは、ユーザーエラー条件をトリガーするために使用され、組み込みのエラーハンドラーと組み合わせて使用​​することも、新しいエラーハンドラーとして設定されたユーザー定義関数と組み合わせて使用​​することもできます。 構文 user_error(error_msg, error_type) パラメータ error_msg-エラーメッセージを指定します。長さは1024文字に制限されています。 error_type-このエラーメッセージのエラータイプを指定します。 考えられるエラーの種類は次の

  2. PHPのerror_get_last()関数

    error_get_last()関数は、最後に発生したエラーを連想配列として取得します。連想配列には4つのキーが含まれています- [タイプ]-エラータイプについて説明します [メッセージ]-エラーメッセージについて説明します [ファイル]-エラーが発生したファイルについて説明します [行]-エラーが発生した行を説明します 構文 error_get_last() パラメータ NA 戻る error_get_last()関数は、キー「type」、「message」、「file」、および「line」を使用して最後のエラーを記述する連想配列を返します。エラーがまだ