Laravel在Laravel之前捕获错误

Laravel在Laravel之前捕获错误,laravel,laravel-5,guzzle,laravel-5.1,Laravel,Laravel 5,Guzzle,Laravel 5.1,我正在使用Laravel5.1和Guzzle发送API请求 我有两个函数,一个用于获取一个人,另一个用于检索关于这个人的数据,因为每个函数都是一个单独的请求 如果没有找到任何一个404响应代码,则会将其发回并由laravel拾取 然而,来自函数1的404响应与来自函数2的响应具有不同的含义,尽管它们是相同的响应代码和异常,但它们的含义不同 我曾尝试在该方法的控制器中捕获错误,希望它能在laravels异常处理程序之前捕获错误,但它似乎不起作用,并被处理程序捕获 如何在Laravels异常处理程序

我正在使用Laravel5.1和Guzzle发送API请求

我有两个函数,一个用于获取一个人,另一个用于检索关于这个人的数据,因为每个函数都是一个单独的请求

如果没有找到任何一个404响应代码,则会将其发回并由laravel拾取

然而,来自函数1的404响应与来自函数2的响应具有不同的含义,尽管它们是相同的响应代码和异常,但它们的含义不同

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


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

在控制器顶部添加:

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
,而这反过来又扩展了
RequestException
。有关更多详细信息,请参阅。

非常感谢,我确实尝试过这个,但我想我忘记导入RequestException了,谢谢