Согласно Джоэлю Спольски, Исключения не должны использоваться .
Мое общее эмпирическое правило, касающееся обработки исключений, заключается в том, чтобы сначала попытаться сохранить поток приложений для конечного пользователя, чего вы могли бы достичь, просто никогда не создавая исключения в PHP, но бывают ситуации, когда они полезны.
Я склонен смотреть на решение о том, выдавать ли исключение, а не возвращать логическое ложное значение или какой-либо другой метод обработки, основанный на условиях, которые могут привести к состоянию, вызывающему проблему.
Является ли это нормальным, вероятным значением или состоянием, которое должно быть при выполнении определенного кодового блока? Если это так, то вы, вероятно, просто хотите вернуть логическое значение false или другое значение, указывающее, что блок кода достиг точки сбоя.
Если вы обеспокоены тем, что может существовать ненормальное значение или состояние, или если значение или состояние является результатом того, что кто-то забыл правильно инициализировать переменную в коде, то, вероятно, будет целесообразно исключение, поскольку это обеспечит немедленную обратная связь с вами как разработчиком. Пара примеров здесь будет иметь обязательное свойство, которое должно быть установлено в конструкторе объекта, но значение не указано правильно, или если у вас есть сценарий, когда метод не должен вызываться для объекта, вы можете вызвать исключение если он будет вызван.
Короче говоря, я склонен использовать инструмент, который подходит лучше всего. Если я имею дело с чем-то, что является частью нормального выполнения приложения, то я обычно возвращаю значение, указывающее на ошибку. Если возникает ситуация, когда происходит что-то недопустимое, я выкидываю исключение, чтобы решить проблему.
Полагаю, вы могли бы сказать, что я использую исключения только для того, чтобы поймать те вещи, которые действительно должны остановить выполнение приложения для конечного пользователя, но я пишу с мыслью, что при надлежащем тестировании ни одна из этих строк кода не должна выполняться в дикий.