title: GuzzleHttp Asynchronous Request Exception
body: <p>I can't figure out how I can throw an exception from Guzzle <code>future response</code> handler.
  Here's my code:</p>
  
  <pre><code>&lt;?php
  require 'vendor/autoload.php';
  
  $client = new \GuzzleHttp\Client();
  
  $req = $client-&gt;createRequest('GET', 'http://www.google.com', array(
      'future' =&gt; true,
  ));
  echo "Sending request\n";
  $response = $client-&gt;send($req);
  
  try {
      $response-&gt;then(function ($data) {
          echo "Response is received\n";
          throw new Exception('Test');
      })-&gt;then(function () {
          // success handler
      }, function (Exception $exception) {
          echo "Error handler invoked\n";
          throw $exception;
      });
  } catch (Exception $e) {
      echo "Exception catched\n";
  }
  echo "Finish\n";
  </code></pre>
  
  <p>The <code>catch</code> block is never reached in this case.</p>