如何处理致命错误:cURL错误7:无法连接到xxxx端口443

6jygbczu  于 2023-03-12  发布在  其他
关注(0)|答案(2)|浏览(667)

我有一个连接到第三方API的脚本。它应该在一个不间断的循环中24/7运行(在重新启动循环之前,我使用了一个睡眠)。
问题是,有时第三方API会被关闭,或者连接会因以下错误而中断:
致命错误:未捕获异常“GuzzleHttp\Ring\Exception\ConnectException”,并显示消息“cURL错误7:无法连接到xxx.com端口443
是否有任何方法可以“中断”此致命错误,以确保代码重新启动并继续(如果可以执行操作),或者每次遇到此错误时必须手动重新启动?

prdp8dxp

prdp8dxp1#

来自Michael's注解
看起来您可以捕获GuzzleHttp\Ring\Exception\ConnectException异常
像这样:

use GuzzleHttp\Ring\Exception\ConnectException;

try {
    // the code which throws the error
} catch( ConnectException $ex ) {
    switch ( $ex->getMessage() ) {
        case '7': // to be verified
            // handle your exception in the way you want,
            // maybe with a graceful fallback
            break;
    }
}

它看起来像是guzzle的ConnectExceptionextendssomeclasses,并最终扩展了php的Exception,这样您就可以安全地使用getCode()方法,允许您捕获一个标识符,您可以根据需要对该标识符做出React。

0g0grzrc

0g0grzrc2#

捕获ConnectionException,示例代码如下:

use Illuminate\Http\Client\ConnectionException;
...
try {
    Http::get('<your url>');
}
catch (ConnectionException $e) {
   // Do something with $e for example Log::debug($e->getMessage());
}

相关问题