Ответ 1
LogicException
кажется, что для этого "никогда не произойдет" проверки ошибок:
Исключение, представляющее ошибку в логике программы. Такое исключение должно непосредственно привести к исправлению в вашем коде.
Некоторые из других исключений SPL, таких как BadFunctionCallException
, наследуют его.
RuntimeException
для случаев, когда происходит ошибка, которая может быть обнаружена только во время работы программы. Именование - это удержание скомпилированных языков, где определенные ошибки могут быть обнаружены во время компиляции. Как и LogicException
, некоторые из других исключений SPL наследуют от него.
Вероятно, вы не хотите использовать ни одно из них в качестве базы для своих собственных расширений, если не знаете, что ваш код может создать другое исключение в иерархии наследования, и вы захотите поймать любой из них вместо ваше конкретное исключение или все исключения.