【问题标题】:Laravel catch error before laravel doesLaravel 在 laravel 之前捕获错误
【发布时间】:2015-09-21 04:21:51
【问题描述】:

我正在使用 Laravel 5.1 和 Guzzle 发送 API 请求。

我有两个函数,一个是获取一个人,第二个是检索有关此人的数据,因为每个函数都是一个单独的请求。

如果没有找到任何一个 404 响应代码,则 laravel 会发回并接收它。

但是,来自函数 1 的 404 响应与来自函数 2 的响应具有不同的含义,即使它们是相同的响应代码和异常,但很麻烦。

我试图在控制器中捕获该方法的错误,希望它能在 laravel 异常处理程序之前捕获它,但它似乎不起作用并被处理程序捕获。

如何在 Laravel 异常处理程序之前捕获控制器中的异常?

【问题讨论】:

    标签: laravel laravel-5 guzzle laravel-5.1


    【解决方案1】:

    在Controller的顶部添加:

    use GuzzleHttp\Exception\RequestException;
    

    将您的请求包装在 try catch 中,如下所示:

    try {
        $client->get('https://github.com/_abc_123_404');
    } catch (RequestException $e) {
        echo $e->getRequest();
        if ($e->hasResponse()) {
            echo $e->getResponse();
        }
    }
    

    您可以捕获任何 Guzzle 异常,如果您只想捕获 404,那么您可以尝试在控制器顶部使用 ClientException 并捕获它,此异常扩展 BadResponseException 进而扩展 @987654326 @。详情请参阅documentation

    【讨论】:

    • 非常感谢,我确实试过了,但我想我忘了导入RequestException,谢谢
    猜你喜欢
    • 2021-07-05
    • 1970-01-01
    • 2015-08-06
    • 2017-05-17
    • 2015-03-08
    • 1970-01-01
    • 2014-03-25
    • 2020-10-04
    • 1970-01-01
    相关资源
    最近更新 更多