我使用PDO进行以下连接。显然它不会连接,因为我没有指定主机或数据库(或用户或密码)
$dbh = new PDO('mysql:host=;dbname=', '', '');
..那我怎么抓住这个例外?我正在尝试这样的事情:
try {
$dbh = new PDO('mysql:host=;dbname=', '', '');
} catch (Exception $e) {
echo 'Error: ', $e->getMessage(), "\n";
}
..但不显示任何消息。为什么呢?
答案 0 :(得分:1)
您使用的是自定义命名空间吗?然后你需要改变
} catch (\Exception $e) {
echo 'Error: ', $e->getMessage(), "\n";
}
注意Exception之前的反斜杠。
答案 1 :(得分:0)
您需要传递属性ERRMODE_EXCEPTION
才能在尝试失败的连接时收到异常:
$dbh = new PDO('mysql:host=;dbname=', '', '', array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
));
查看PDO::__construct()
的手册页以获取更多信息。
还请检查@Ali的回答!