在laravel 3中无法捕获PDOException

Wil*_*ill 6 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()));
}
Run Code Online (Sandbox Code Playgroud)

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

oll*_*ead -1

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