我有一段简单的代码,在PHP中使用PDO:
$conn = new PDO('mysql:host=localhost;dbname=someDatabase', $username, $password,
array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_PERSISTENT => false,
));
和这个自定义异常处理程序:
function my_exceptionHandler($exception) {
echo "Exception: {$exception->getMessage()}";
}
set_exception_handler("my_exceptionHandler");
虽然自定义异常处理程序捕获所有其他异常,但它无法捕获PDO异常,即当数据库的用户名和密码不正确时,我只是得到明显的错误:
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)
对于这种类型的异常,是否有任何我想念的重载自定义异常处理函数? 请注意,当我在PD和catch块中包装PDO代码时,它工作正常,但我想在我的自定义异常处理程序中捕获它。
答案 0 :(得分:1)
SQLSTATE [HY000] [1045]用户'root'@'localhost'拒绝访问(使用密码:YES)
如果您有完整且完整错误消息 - 那么有一些您自己的代码(很可能是全局try..catch)会打印出捕获的错误。
(如果没有 - 请,请正确提出问题,提供完整和完整的错误消息 - 所以,我们将能够帮助您。)