我该如何处理Doctrine错误?

时间:2013-03-12 22:00:51

标签: symfony

我在Symfony2应用程序中使用Doctrine的dbal服务。

我查询一个不存在的表,它会抛出一个错误:

  

SQLSTATE [42S02]:找不到基表或视图:1146表'log.requests_20130311'不存在。

Symfony2即使在try-catch区块中也能抓住这个。我不希望这会杀死我的应用程序。我怎么处理呢?

2 个答案:

答案 0 :(得分:4)

Per @ Coussinsky的评论,你需要在你的例外面前有一个\

try {
    $result_set = $this->connection->query($sql);
} catch (\Exception $e) {
    return 0;
}

答案 1 :(得分:3)

Doctrines DBAL层是PDO的包装器,所以你应该可以这样做:

try {
    // Query your non-existent table
} catch (\PDOException $e) {
    // Deal with it without killing your app
}

http://symfony.com/doc/current/cookbook/doctrine/dbal.html