Класс \Error
, как вы уже упоминали, был представлен в PHP 7.
Он действует как исключение, поскольку он реализует Throwable
.
Это также подклассы по следующему:
ArithmeticError
DivisionByZeroError
AssertionError
ParseError
TypeError
ArgumentCountError
Тем не менее, он не ведет себя как trigger_error()
, фактически он ведет себя как исключение (в основном потому, что оно одно).
Если вы trigger_error()
, вы не можете его поймать, потому что это не исключение. Хотя есть обходные пути .
Это в основном предположение с моей стороны.
Я предполагаю, что это существует для более четкого разделения Ошибок и Исключений, возможно, будущие планы включают в себя устаревшую trigger_error
и оставляют только Error
.
Чтобы ответить на ваш вопрос.
Я бы придерживался throwing
, а не trigger_error
. Это ловится, это ООП.