Исключения следует использовать только в том случае, если существует потенциально разрушающее сайт событие, например, если запрос к базе данных не выполняется должным образом или что-то настроено неправильно. Хорошим примером является то, что процесс кэша или журнала не может быть записан процессом Apache.
Идея в том, что для вас, разработчика, существуют исключения для остановки кода, который может взломать весь сайт, чтобы вы могли исправить их перед развертыванием. Они также являются проверками работоспособности, чтобы удостовериться, что в случае изменения среды (то есть, кто-то изменит разрешения для папки кэша или изменит схему базы данных) сайт останавливается, прежде чем он может что-либо повредить.
Итак, нет; вложенные обработчики catch не очень хорошая идея. На моих страницах мой файл index.php упаковывает свой код в блок try ... cache - и, если происходит что-то плохое, он проверяет, находится ли он в работе или нет; и либо отправляет мне электронное письмо и отображает страницу с общей ошибкой, либо отображает ошибку прямо на экране.
Помните: PHP не C #. C # (за исключением (хе-хе, не каламбур предназначен: p) ASP.net) для приложений, содержащих состояние - тогда как PHP является языком сценариев без сохранения состояния.