如何在Laravel 4.2中捕获PDO异常?

时间:2015-04-17 10:40:46

标签: pdo laravel-4 exception-handling

有人可以帮我解决如何在Laravel 4.2中捕获PDO异常吗?我可以在/app/start/global.php中使用App :: error和App :: fatal捕获致命或运行时异常,但无法以任何方式捕获PDO异常。我不想篡改Laravel基类。我尝试注册全局异常处理程序但是效果不佳。目前我在global.php中有以下代码

App::error(function(Exception $exception, $code)
{
    Log::error($exception);

    return Response::view("errors.{$code}", array(), $code);
});

App::error(function(RuntimeException $exception)
{
    Log::error($exception);

    return Response::view("errors.500", array(), 500);
});

App::fatal(function($exception)
{
    header("HTTP/1.1 500 Internal Server Error");
    echo '<center><h3>Sorry! Something is wrong with this request!</h3></center>';

    exit;
});

App::error(function(InvalidUserException $exception)
{
    Log::error($exception);

    return Response::view('errors.401', array(), 401);
});

如何在此处或任何地方添加PDOException块?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我想简单地将PDOException传递给你的闭包会捕获错误,如:

App::error(function(\PDOException $exception)
{
    Log::error($exception);

    return Response::view('errors.401', array(), 401);
});