【问题标题】:PHP catching PDO exception [duplicate]PHP捕获PDO异常[重复]
【发布时间】:2014-11-20 14:59:33
【问题描述】:

如果被捕获,为什么我会收到以下错误?

警告:带有消息的未捕获异常“PDOException” 'SQLSTATE[08001]:[Microsoft][SQL Server Native Client 11.0]命名 管道提供程序:无法打开与 SQL Server [53] 的连接。

try {
    $_dbHandler = new PDO("sqlsrv:Server={$_dbConfig['server']};Database={$_dbConfig['dbName']}", $_dbConfig['username'], $_dbConfig['password']);
    $_dbHandler->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $exception) {
    //$exception->getMessage();
    die();
}

【问题讨论】:

  • 可能是另一种异常
  • @DJBurb 我能赶上Exception 吗?基本上我想静默终止程序
  • 我的印象是 catch(Exception $exception) 将捕获所有异常,而 PDOException 是一个自定义异常,应该可以被 ExceptionPDOException 捕获,尽管后者显然不适合你。
  • 您使用的 PHP 版本可能存在错误。正在使用什么版本?可以更新吗?

标签: php pdo exception-handling


【解决方案1】:

可能的原因可能是命名空间:您应该尝试捕获 \PDOException 而不是 PDOException

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 2019-02-15
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    • 2015-10-18
    • 2012-10-01
    相关资源
    最近更新 更多