Учебники

PHP 7 — Обработка ошибок

Начиная с PHP 7, обработка ошибок и отчеты были изменены. Вместо того, чтобы сообщать об ошибках с помощью традиционного механизма сообщений об ошибках, используемого в PHP 5, теперь большинство ошибок обрабатываются с помощью исключения ошибок. Подобно исключениям, эти исключения ошибок всплывают до тех пор, пока не достигнут первого соответствующего блока catch. Если совпадающих блоков нет, будет вызван обработчик исключений по умолчанию, установленный с помощью set_exception_handler () . В случае отсутствия обработчика исключений по умолчанию, исключение будет преобразовано в фатальную ошибку и будет обработано как традиционная ошибка.

Поскольку иерархия ошибок не расширена из исключения, код, использующий блоки catch (Exception $ e) {…} для обработки необработанных исключений в PHP 5, не будет обрабатывать такие ошибки. Блок catch (Ошибка $ 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());
?>

Это производит следующий вывод браузера —