我正试图在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,它只会引发一般异常。
答案 0 :(得分:-1)
模型实际上不会抛出PDOException
,而是会在内部捕获,而是会抛出\Illuminate\Database\QueryException
,尝试抓住它。