В случае исключения я хочу сохранить данные в БД (URL, описание, код, метод, реферер, клиент, пользовательский агент)
Хорошим местом для начала является документация CakePhp Exceptions .
Я бы порекомендовал создать класс обработчика исключений , который будет обрабатывать все ваши пользовательские потребности ведения журнала.