Для меня ключом является комментарий @ububaba к вашему вопросу: ловить и делать что?
Самое простое, что вам нужно сделать - чтобы вам не приходилось копаться в коде db / mapper / model / repository / service controller - просто измените ваш ErrorController
, чтобы он "делал что-то другое", когда исключением является Zend_Db_Exception
.
Но это действительно вещи высшего уровня, последний шанс поймать бесценную вазу Мин, прежде чем она упадет на пол и разлетится на миллион кусочков, вероятно, настолько далеко от брошенной ошибки, что вы упускаете более значимые способы обработки ошибки. В целом, чем ближе вы находитесь к броску, тем лучше вы знаете контекст, в котором произошел этот бросок, который затем информирует / направляет лучший способ справиться с ним (например: пусть он поднимается вверх, ловить / отбрасывать) , ловить / есть и т. д.). В этом смысле, вероятно, есть реальная выгода в объединении небольших блоков в блоки try / catch.
Просто мысли вслух. YMMV.