在我的services.yaml
中,我收到此代码:
services:
# prepare database
DatabaseProvider:
class: Kepler\Providers\DatabaseProvider
arguments: ['%database.reader.dsn%', '%database.reader.username%', '%database.reader.password%']
ReaderPDO:
class: PDO
factory: ['@DatabaseProvider', generateDatabaseConnection]
WriterPDO:
class: PDO
factory: ['@DatabaseProvider', generateDatabaseConnection]
和DatabaseProvider:generateDatabaseConnection
public function generateDatabaseConnection() {
try {
return new PDO($this->host, $this->username, $this->password);
} catch (Exception $e) {
return new PDO($this->host, $this->username, $this->password);
$_GLOBALS['db_error'] = true;
}
}
所以我的问题在这里:在某些情况下,PDO连接无法正常工作/失败。因此,如何捕获此异常并返回常规404页面(这是我不需要任何数据库连接的页面)?
一些基本分析:
如果与return
块中一样返回[[完全相同]],则[catch
块中具有try
应该被认为是有害的。