Подтвердить что ты не робот

LogicException vs. RuntimeException

Мне было интересно, было ли правило, когда следует использовать, какое исключение в PHP... Когда мне нужно выбросить LogicException и когда RuntimeException?

Например, когда дело доходит до таких исключений, как PageNotFoundException, из какого класса исключений я должен наследовать?

4b9b3361

Ответ 1

LogicException кажется, что для этого "никогда не произойдет" проверки ошибок:

Исключение, представляющее ошибку в логике программы. Такое исключение должно непосредственно привести к исправлению в вашем коде.

Некоторые из других исключений SPL, таких как BadFunctionCallException, наследуют его.

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

Вероятно, вы не хотите использовать ни одно из них в качестве базы для своих собственных расширений, если не знаете, что ваш код может создать другое исключение в иерархии наследования, и вы захотите поймать любой из них вместо ваше конкретное исключение или все исключения.