Когда в ответе от Guzzle, HTTP-клиента, приходит информация об ошибке в заголовке, дальнейшее выполнение скрипта Yii прерывается по умолчанию. Прерывание происходит из-за того, что Yii использует исключения для обработки ошибок при выполнении HTTP-запросов с помощью Guzzle.
По умолчанию, Yii создает экземпляр класса Response, который представляет ответ сервера. Если в ответе сервера присутствует ошибка в заголовке, Yii генерирует исключение CHttpException со статусом ошибки и соответствующим сообщением. Это исключение активирует обработчик ошибок в Yii и может привести к остановке дальнейшего выполнения кода.
Для обработки таких исключений в Yii вы можете использовать блок try-catch вокруг вызова кода, где ожидается возникновение исключения. Например:
try { $response = $client->request('GET', 'http://example.com'); // Обработать положительный ответ } catch (yiiwebHttpException $e) { // Обработать ошибку HTTP } catch (Exception $e) { // Обработать другие исключения }
Таким образом, использование блока try-catch позволяет контролировать выполнение кода, даже если в ответе от Guzzle есть информация об ошибке в заголовке. Вы можете перехватить это исключение и выполнить дополнительные действия, например, записать ошибку в логи или вернуть пользователю сообщение об ошибке.