Php 为什么会出现致命错误:未捕获异常';GuzzleHttp\Exception\ClientException';带有消息';客户端错误:404';?
我尝试捕获异常,但仍然在C:\OS\OpenServer\domains\kinopoik\parser\php\vendor\GuzzleHttp\guzzle\src\Middleware.php:69中获得“致命错误:未捕获异常'GuzzleHttp\exception\ClientException',并显示消息'Client error:404'Php 为什么会出现致命错误:未捕获异常';GuzzleHttp\Exception\ClientException';带有消息';客户端错误:404';?,php,guzzle,guzzle6,Php,Guzzle,Guzzle6,我尝试捕获异常,但仍然在C:\OS\OpenServer\domains\kinopoik\parser\php\vendor\GuzzleHttp\guzzle\src\Middleware.php:69中获得“致命错误:未捕获异常'GuzzleHttp\exception\ClientException',并显示消息'Client error:404' 我不确定,但您只在这里捕获了客户异常。尝试捕获RequestException。查看Middleware.php:69中的代码,这是所使用的
我不确定,但您只在这里捕获了客户异常。尝试捕获RequestException
。查看Middleware.php:69
中的代码,这是所使用的异常类,但是如果您想捕获所有异常,则需要使用最抽象的异常类,它应该是
RuntimeException
或GuzzleException
试着这样做:
try {
// your code here
} catch (RuntimeException $e) {
// catches all kinds of RuntimeExceptions
if ($e instanceof ClientException) {
// catch your ClientExceptions
} else if ($e instanceof RequestException) {
// catch your RequestExceptions
}
}
或者您可以尝试以下方法
try {
// your code here
} catch (ClientException $e) {
// catches all ClientExceptions
} catch (RequestException $e) {
// catches all RequestExceptions
}
希望能有所帮助。感谢您的反馈,它帮助我了解了错误所在。我想我不明白“$promise->wait()”=”的真正含义是什么,因为当我在“foreache”中替换它时,一切都开始工作了。另外,当我在“try-catch”中添加$promise->wait()时,它也会起作用。
<?php
//some code
try {
$promise->wait();
} catch (RequestException $e) {
echo $e->getMessage();
}
<?php
//some code
try {
$promise->wait();
} catch (RequestException $e) {
echo $e->getMessage();
}