# File lib/openstack/connection.rb, line 719
    def self.raise_exception(response)
      return if response.code =~ /^20.$/
      begin
        fault = nil
        info = nil
        if response.body.nil? && response.code == "404" #HEAD ops no body returned
          exception_class = self.const_get("ItemNotFound")
          raise exception_class.new("The resource could not be found", "404", "")
        else
          JSON.parse(response.body).each_pair do |key, val|
            fault=key
            info=val
          end
          exception_class = self.const_get(fault[0,1].capitalize+fault[1,fault.length])
          raise exception_class.new((info["message"] || info), response.code, response.body)
        end
      rescue JSON::ParserError => parse_error
        deal_with_faulty_error(response, parse_error)
      rescue NameError
        raise OpenStack::Exception::Other.new("The server returned status #{response.code}", response.code, response.body)
      end
    end