gpt4 book ai didi

php:捕获PDO异常并继续执行?

转载 作者:行者123 更新时间:2023-11-29 10:18:41 25 4
gpt4 key购买 nike

我的项目在“db.class.php”中使用 PDO 异常处理,该文件是所有库的全局文件,由于影响而无法更改。

在某个时间点,应用程序正在尝试连接新数据库,如果无法访问新数据库,则脚本应忽略此错误并继续执行。

新的数据库连接异常在“db.class.php”中处理,当我在连接新数据库时尝试处理异常时,不知何故异常处理不起作用,脚本在此时停止。

如果我在连接到新数据库时没有处理异常,在这种情况下脚本也会停止执行。

要求即使在这种情况下由于任何问题数据库未连接,脚本也应继续执行而忽略错误。

代码:

try {   
$newDb = new DB(DB_HOST_new, DB_NAME_new, DB_USER_new, DB_PASS_new, DB_UTC_TIMEZONE);
$isDbSsConnected = true ;
} catch (PDOException $exx) {
//throw new Exception('Unable to connect');
}

db.class.php

try {
$connection = new PDO( $dsn, $username, $password );
$connection->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

if ( $utc ) {
$this->setUtc( $connection );
}

$this->connection = $connection;
self::$connections[$dsn][$username] = self::$connectionCachingEnabled ? $this->connection : NULL;

} catch ( PDOException $ex ) {
throw new DbEx( "Initialize Failed: DSN = " . $dsn, DbEx::INIT_FAILED, $ex );
}

最佳答案

db.class.php 文件抛出一个 DbEX 异常,这可能是您应该捕获的异常,而不是通用的 PDOException .

关于php:捕获PDO异常并继续执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49727442/

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