Php7-error-handling

提供:Dev Guides
移動先:案内検索

PHP 7-エラー処理

PHP 7から、エラー処理とレポートが変更されました。 PHP 5で使用されていた従来のエラーレポートメカニズムでエラーをレポートする代わりに、ほとんどのエラーはエラー例外をスローすることで処理されます。 例外と同様に、これらのエラー例外は、最初に一致するcatchブロックに到達するまでバブルアップします。 一致するブロックがない場合、* set_exception_handler()*でインストールされたデフォルトの例外ハンドラーが呼び出されます。 デフォルトの例外ハンドラーがない場合、例外は致命的なエラーに変換され、従来のエラーのように処理されます。

エラー階層は例外から拡張されていないため、catch(例外$ e)を使用するコード\ {…​ } PHP 5でキャッチされない例外を処理するブロックは、このようなエラーを処理しません。 キャッチ(エラー$ e)\ {…​ 致命的なエラーを処理するには、ブロックまたは* set_exception_handler()*ハンドラーが必要です。

例外階層

<?php
   class MathOperations {
      protected $n = 10;

     //Try to get the Division by Zero error object and display as Exception
      public function doOperation(): string {
         try {
            $value = $this->n % 0;
            return $value;
         } catch (DivisionByZeroError $e) {
            return $e->getMessage();
         }
      }
   }

   $mathOperationsObj = new MathOperations();
   print($mathOperationsObj->doOperation());
?>

次のブラウザ出力を生成します-

Modulo by zero