Нет ничего в классах Zend_Exceptions, чтобы получить источник исключения, кроме метода getTrace()
.Вы можете использовать это getTrace , чтобы получить объект объекта Zend_Db_Select, и если ваша версия Zend Framework не слишком старая, у вас есть класс getAdapter (если у вас нет getAdapter для Zend_Db_Select, это не оченьтрудно кодируемый метод, так как $ this -> _ адаптер присутствует).Итак, вот код, который можно использовать в секции catch для получения подробной информации о конфигурации адаптера:
} catch (Exception $e) {
foreach($e->getTrace() as $trace) {
if($trace['class']=='Zend_Db_Adapter_Abstract' || 'Zend_Db_Adapter_Pdo_Abstract'==$trace['class']) {
$zendDbSelect = $trace['args'][0];
$zendDbAdapter = $zendDbSelect->getAdapter();
$conn = $zendDbAdapter->getConfig();
//output adapter configuration, more useful things could be done
// with that if you want
Zend_Debug::dump($conn);
// stop the loop on traces
break;
}
}
// to something else with the exception if you want
}