我想知道如果我可以把一个尝试捕捉有关$application->bootstrap()->run();
这将赶上pdo exceptions
这工作,但它抓住每一个例外,我不想要的。
try {
$application->bootstrap()->run();
} catch (Exception $e) {
print_r($e);
}
我有PDO异常讨厌的事件是遥,距离的application.ini显示密码!
值得注意的,我曾尝试PDOException,它不得到捕获。
我的DB是建立在引导的run()与
try {
$db = $this->getPluginResource('db')->getDbAdapter();
Zend_Registry::set('dbAdapter', $db);
} catch (Exception $e) {
echo 1;exit;
}
需要注意的是,如果我放错了密码,并在本地运行应用程序,我不看,1,我看到一个空白页,即使错误报告上。
去哪里你的数据库代码,并把try周围的代码捕获。 如果你只想要PDO例外再搭上只有PdoException。 把像抓(PdoExcetion_OR_What_Its_Name_Is $ E)(和禁用错误输出到屏幕上。写你的错误日志文件)
如果我理解正确的问题,它的意思是你想抓住你的数据库连接异常
而这将是如下这些行一样简单:
try {
$db = Zend_Db::factory('Pdo_Mysql', $parameters);
$db->getConnection();
} catch (Zend_Db_Adapter_Exception $e) {
// perhaps a failed login credential, or perhaps the RDBMS is not running
} catch (Zend_Exception $e) {
// perhaps factory() failed to load the specified Adapter class
}
基本getConnection
功能正在尝试连接与参数数据库,如果失败,将抛出一个Zend_Db_Adapter_Exception
如果成功地连接它会返回PDO object
同样,你可以用这个模式来抓住你Zend_Db
异常或PDO_Exceptions
在控制器类或把这些样的错误的模型,而不是整个应用程序
这似乎很奇怪,试图搭上了整个应用程序。 禁用错误报告(如display_errors设置在php.ini)将是好了很多,停止从露出异常uncatched任何敏感信息。
但是,为了回答你的问题:
try {
$application->bootstrap()->run();
} catch (PDOException $e) {
print_r($e);
}
这应该只捕获异常PDO。