PDO声称未被捕获的异常,即使它在try / catch块内部?

时间:2012-12-29 10:06:01

标签: php sql pdo namespaces

嗯,我不知道我做错了什么......

此代码:

        try {
            $this->CONN = new \PDO('mysql:dbname='.PASTEAES_DBNAME.';host='.PASTEAES_SERVER, PASTEAES_USERNAME, PASTEAES_PASSWORD);
            $this->CONN->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
        } catch(PDOException $e) {
            $this->raiseError('Fatal MySQL error', $e->getMessage());
        }

向我报告:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000] [1049] Unknown database 'pasteaes'' in /var/www/pasteaes/common/class.pasteaes.php on line 25

但是,正如你所看到的那样,它显然是一个尝试和阻止。

这段特殊代码所在的类是命名空间,这就是我在上面共享的代码的第二行使用“\ PDO”代替“PDO”的原因。

哦,是的,我知道数据库不存在,但我仍然不希望将来发生这种情况(不是这样)。我想妥善处理错误:(

1 个答案:

答案 0 :(得分:13)

catch(\PDOException $e)
      ^