Почему убивается дальнейшее выполнение скрипта в Yii, если в ответе от guzzle в заголовке приходит информация об ошибке?

Когда в ответе от 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 есть информация об ошибке в заголовке. Вы можете перехватить это исключение и выполнить дополнительные действия, например, записать ошибку в логи или вернуть пользователю сообщение об ошибке.