捕获Laravel 8中的HTTP客户端错误

捕获Laravel 8中的HTTP客户端错误,laravel,Laravel,如何捕获由例如超时引发的错误,以便它在调试模式下不会在laraval调试器中引发curl错误,然后才能对错误执行任何操作以避免停止执行 use Illuminate\Support\Facades\Http; try { $request = Http::post('https://example.com/post', [ 'password' => 'guest']); } catch(ConnectException $e)

如何捕获由例如超时引发的错误,以便它在调试模式下不会在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
取而代之的是,我总是得到拉威尔的点火错误页面

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之类的内容,它将永远不存在。

这几乎肯定是一个名称空间问题

您需要在文件顶部显示以下内容之一:

use Illuminate\Http\Client\ConnectionException;
或者这样做:

} catch(\Illuminate\Http\Client\ConnectionException $e)

否则,您实际上是在试图捕获当前名称空间中名为ConnectionException的内容,即App\Controllers\ConnectionException之类的内容,它将永远不存在。

Hi,只有第二种方法有效,但我更喜欢第一种方法,您知道为什么吗?否;我怀疑你在什么地方犯了个错误,打字错误?如果是这样的话。嗨,只有第二种方法有效,但我更喜欢第一种,你知道为什么吗?不;我怀疑你在什么地方犯了个错误,打字错误?如果是这样的话。