gpt4 book ai didi

php - 使用自定义异常处理程序捕获 "PDOException"

转载 作者:搜寻专家 更新时间:2023-10-31 21:36:58 24 4
gpt4 key购买 nike

我有一段简单的代码,在 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) 

有没有什么我想念的,比如为这种类型的异常重载自定义异常处理函数?请注意,当我将 PDO 代码包装在 try 和 catch block 中时,它工作正常,但我想在我的自定义异常处理程序中捕获它。

最佳答案

SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)

如果它是完整且完整的错误消息 - 那么您有一些自己的代码(很可能是全局 try..catch)打印出捕获的错误。
(如果不是 - 请正确提问,提供完整和完整的错误消息 - 这样,我们就能帮助您。)

关于php - 使用自定义异常处理程序捕获 "PDOException",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16879376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com