Сначала обработка исключений не такая тривиальная, как кажется, поэтому вы должны потратить немного времени на это. :-)
Вы должны смотреть на исключения, явные как ошибку, которую вы не можете обработать в текущем коде/функции. Если вы можете решить проблему, нет необходимости бросать и обрабатывать исключение.
Не используйте его как механизм для обработки ожидаемого поведения.
Уверенный, что можно поймать несколько исключений, продолжить выполнение кода и сохранить их в массиве, но это не имеет смысла. Вы получаете исключение в своем коде, если вы действительно сталкиваетесь с ошибкой, с которой вы не можете справиться в своем текущем коде (например, внезапно закрытые сокеты и т. Д.).Правило тогда:
поймать только исключение, если вы можете сделать что-то полезное с ним или бросить еще одно исключение
Для отслеживания ошибок в вашем приложении, вы должны использовать другие методы, чем хранение их в массиве и извлечения их позже , Используйте Logging (есть отличные фреймворки, например Log4PHP) для документирования незначительных ошибок и предупреждений приложений.
По тем, что было бы удивительным, чтобы быть в состоянии использовать исключения для более чем просто показывает ошибку, которая убивает приложения (сценарий)
Исключение должно убить только приложение в этом случае вы ничего не можете с этим поделать. Также в большинстве случаев рекомендуется поймать все исключения на самом высоком уровне в вашем скрипте, зарегистрировать ошибку с трассировкой стека и представить пользователю сообщение с хорошей ошибкой, а не просто «убить» все. :-)
Для некоторых примеров синтаксиса см. W3Schools PHP Exception Handling. Большая статья об этой теме размещена на Devshed.
Hi Echox! Спасибо за большой и обширный ответ. Есть ли у вас примеры использования Log4PHP для массива? Спасибо! – Industrial
Зачем вам нужно хранить все в массиве? :-) Просто зарегистрируйте его в своей файловой системе или в таблице базы данных? Но если вам действительно нужно хранить свой «журнал» в массиве, просто используйте $ e-> getMessage(); и сохраните результирующую строку в массиве. См. «Несколько исключений и повторных исключений» в примерах W3Schools. – echox
Привет! Я пытаюсь собрать несколько сообщений об ошибках/состояниях, созданных в результате цепного действия, чтобы отправить обратно пользователю вместе с результатом функции (true/false) – Industrial