Laravel 在 laravel 之前捕获错误
Laravel catch error before laravel does
我正在使用 Laravel 5.1 和 Guzzle 发送 API 请求。
我有两个函数,一个是获取一个人,第二个是检索关于这个人的数据,因为每个都是一个单独的请求。
如果没有找到任何一个 404 响应代码,并由 laravel 接收。
然而,函数 1 的 404 响应与函数 2 的响应具有不同的含义,即使它们是相同的响应代码和异常,但也很麻烦。
我已经尝试在控制器中捕获该方法的错误,希望它能在 laravel 的异常处理程序执行之前捕获它,但它似乎不起作用并被处理程序捕获。
如何在 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
。有关详细信息,请参阅 documentation。
我正在使用 Laravel 5.1 和 Guzzle 发送 API 请求。
我有两个函数,一个是获取一个人,第二个是检索关于这个人的数据,因为每个都是一个单独的请求。
如果没有找到任何一个 404 响应代码,并由 laravel 接收。
然而,函数 1 的 404 响应与函数 2 的响应具有不同的含义,即使它们是相同的响应代码和异常,但也很麻烦。
我已经尝试在控制器中捕获该方法的错误,希望它能在 laravel 的异常处理程序执行之前捕获它,但它似乎不起作用并被处理程序捕获。
如何在 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
。有关详细信息,请参阅 documentation。