【问题标题】:Laravel - can't catch PDO exceptionsLaravel - 无法捕获 PDO 异常
【发布时间】:2016-12-10 10:42:06
【问题描述】:

我有这个:

    $this->db = DB::connection()->getPdo();
    $this->db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);

还有一个 try...catch 似乎不做任何捕捉的块:

    try {
        $this->SQL->execute($this->values);
        $this->insert_count++;
    } catch (PDOexception $e) {
        $this->errors[] = 'PDO error: ' . $e->getmessage();
        $this->error_count++;
    }

...因为脚本仍然在 PDO 异常上退出:

[PDOException] SQLSTATE[23000]:违反完整性约束: 1062 键“laptops_asset_tag_unique”的重复条目“14”

那么我该如何捕捉/处理 PDO 错误呢?

【问题讨论】:

    标签: laravel


    【解决方案1】:

    你是否为你的异常命名了?

    您必须将 PDOException 导入您的类才能使用它。 在您的 php 文件顶部添加以下语句

    use PDOException;
    

    【讨论】:

    • 这是另一个会引发的错误:CLASS NOT FOUND 'PDOException' ...(如果存在)
    猜你喜欢
    • 2013-08-02
    • 2014-12-25
    • 1970-01-01
    • 2017-09-16
    • 2015-06-24
    • 2012-07-09
    • 1970-01-01
    • 2012-05-20
    • 2015-10-18
    相关资源
    最近更新 更多