php - 无法在 laravel 3 中捕获 PDOException

标签 php mysql laravel laravel-3

我试图在 laravel 3 中捕获 PDOException,但似乎我无法做到这一点。我的代码如下:

try{
    DB::connection()->pdo->beginTransaction();

    Myobject::create($cleaned_input_array);

    // do other stuff that could possibly throw a custom exception

    DB::connection()->pdo->commit();
}
catch(\PDOException $e)
{
    DB::connection()->pdo->rollBack();
    return HTTP_STATUS::response(BAD_REQUEST, array("error creating");
}
catch(Exception $e)
{
    DB::connection()->pdo->rollBack();
    return HTTP_STATUS::response(BAD_REQUEST, array($e->getMessage()));
}

如果“try”中的其他部分抛出异常,则捕获一般异常。如果他们不这样做,一切都会干净利落。如果 create 在执行 MYSQL 语句时出现问题,它不会抛出 PDOException,它只会抛出一般异常。

最佳答案

模型实际上不会抛出 PDOException,它会在内部被捕获,而是会抛出 \Illuminate\Database\QueryException, try catch 它。

关于php - 无法在 laravel 3 中捕获 PDOException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23526897/

相关文章:

php - 使用 PHP 和 MySQL 的个人资料页面

mysql - 返回所有带 count(*) 的行,包括 count(*)=0

php - 方法 Illuminate\Routing\Route::resource 不存在。在 Macroable.php 第 78 行

javascript - jQuery AJAX 中的 Response 包含哪些内容?

php - highchart 无法从 mysql 获取数据

mysql - 读取未提交并更新

php - Laravel 将关系对象添加到新的 Eloquent 模型中

php - 使用 Ubuntu 在 Nginx 上托管应用程序时出现路由问题

php - Composer 无法安装 laravel/passport

php - Javascript 和 PHP 将数据导出到文件