19 return array(
'command.before_send' => array(
'onCommandBeforeSend', -1));
29 $command = $event[
'command'];
30 if ($operation = $command->getOperation()) {
31 if ($operation->getErrorResponses()) {
32 $request = $command->getRequest();
33 $request->getEventDispatcher()
34 ->addListener(
'request.complete', $this->
getErrorClosure($request, $command, $operation));
49 return function (
Event $event) use ($request, $command, $operation) {
50 $response = $event[
'response'];
52 if (!isset($error[
'class'])) {
55 if (isset($error[
'code']) && $response->getStatusCode() != $error[
'code']) {
58 if (isset($error[
'reason']) && $response->getReasonPhrase() != $error[
'reason']) {
61 $className = $error[
'class'];
62 $errorClassInterface = __NAMESPACE__ .
'\\ErrorResponseExceptionInterface';
63 if (!class_exists($className)) {
65 } elseif (!(in_array($errorClassInterface, class_implements($className)))) {
68 throw $className::fromCommand($command, $response);