如何捕获HTTP客户端抛出的错误(例如超时),以便它不会在laraval调试器中(在调试模式下)引发curl错误,然后再对错误进行任何处理以避免停止执行?
use Illuminate\Support\Facades\Http;
try {
$request = Http::post('https://example.com/post', [
'password' => 'guest']);
} catch(ConnectException $e)
{
//log error
}
//continue with another mode
相反,我总是得到Laravel的点火错误页面
Illuminate\Http\Client\ConnectionException
cURL error 28: Failed to connect to example.com port 443: Timed out
并且我的代码未捕获该错误。laravel调试器是否始终具有优先级,并且不能在调试模式下被覆盖?
这几乎可以肯定是一个命名问题。
您需要在文件顶部添加以下内容:
use Illuminate\Http\Client\ConnectionException;
或这样做:
} catch(\Illuminate\Http\Client\ConnectionException $e)
否则,你实际上是试图抓住一些在当前命名的命名空间ConnectionException
(即像App\Controllers\ConnectionException
),这将永远存在。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句