# File lib/rhc/rest.rb, line 177
    def process_error_response(response)
      messages = Array.new
      begin
        result = RHC::Json.decode(response)
        messages = result['messages']
      rescue => e
        logger.debug "Response did not include a message from server" if @mydebug
      end
      case response.code
      when 401
        raise UnAuthorizedException, "Not authenticated"
      when 403
        messages.each do |message|
          if message['severity'].upcase == "ERROR"
            raise RequestDeniedException, message['text']
          end
        end
      when 404
        messages.each do |message|
          if message['severity'].upcase == "ERROR"
            raise ResourceNotFoundException, message['text']
          end
        end
      when 409
        messages.each do |message|
          if message['severity'] and message['severity'].upcase == "ERROR"
            raise ValidationException, message['text']
          end
        end
      when 422
        #puts response
        e = nil
        messages.each do |message|
          if e and e.field == message["field"]
            e.message << " #{message["text"]}"
          else
            e = ValidationException.new(message["text"], message["field"], message["code"])
          end
        end
        raise e
      when 400
        messages.each do |message|
          if message['severity'].upcase == "ERROR"
            raise ClientErrorException, message['text']
          end
        end
      when 500
        messages.each do |message|
          if message['severity'].upcase == "ERROR"
            raise ServerErrorException, message['text']
          end
        end
      when 503
        messages.each do |message|
          if message['severity'].upcase == "ERROR"
            raise ServiceUnavailableException, message['text']
          end
        end
      else
        raise ResourceAccessException, "Server returned error code with no output: #{response.code}"
      end
    end