Карточка Middle Исключения и ошибки обновлено

Иерархия Throwable

Вопрос

Как устроена иерархия исключений PHP?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

Throwable - Error: TypeError (и ArgumentCountError), ValueError, ArithmeticError (DivisionByZeroError), UnhandledMatchError, CompileError. - Exception: ErrorException, JsonException, RuntimeException, LogicException (InvalidArgumentException, DomainException) и другие из SPL.

Ответ

Throwable

  • Error: TypeError (и ArgumentCountError), ValueError, ArithmeticError (DivisionByZeroError), UnhandledMatchError, CompileError.
  • Exception: ErrorException, JsonException, RuntimeException, LogicException (InvalidArgumentException, DomainException) и другие из SPL. Свои исключения наследуют Exception или подходящий класс SPL, а не Error.

Разбор

Реализовать Throwable напрямую в своём классе нельзя, только через наследование Exception или Error.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.