Начиная с 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()); ?>
Это производит следующий вывод браузера —