Выбор ответа Middle Исключения и ошибки спрашивают часто обновлено
Exception и Error
Вопрос
Почему catch (Exception $e) не поймает вызов метода у null?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Это Error, а Error и Exception независимо реализуют Throwable. С PHP 7 фатальные ошибки движка стали исключениями класса Error (TypeError, ValueError, ArithmeticError, DivisionByZeroError).
Варианты ответа
- Такие ошибки вообще нельзя перехватить, скрипт просто завершится
- Это
Error, аErrorиExceptionнезависимо реализуютThrowableправильный ответ - Нужно включить
error_reporting(E_ALL), иначе исключение не бросится Exceptionловит только пользовательские, а не встроенные исключения
Разбор
С PHP 7 фатальные ошибки движка стали исключениями класса Error (TypeError, ValueError, ArithmeticError, DivisionByZeroError). Error не наследует Exception, оба реализуют интерфейс Throwable. Поймать всё можно через catch (Throwable $e). error_reporting управляет предупреждениями, а не исключениями. Exception ловит и встроенные исключения вроде JsonException.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.