Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么会出现致命错误:未捕获异常';GuzzleHttp\Exception\ClientException';带有消息';客户端错误:404';?_Php_Guzzle_Guzzle6 - Fatal编程技术网

Php 为什么会出现致命错误:未捕获异常';GuzzleHttp\Exception\ClientException';带有消息';客户端错误: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中的代码,这是所使用的

我尝试捕获异常,但仍然在C:\OS\OpenServer\domains\kinopoik\parser\php\vendor\GuzzleHttp\guzzle\src\Middleware.php:69中获得“致命错误:未捕获异常'GuzzleHttp\exception\ClientException',并显示消息'Client error:404'


我不确定,但您只在这里捕获了
客户异常。尝试捕获
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();
  }