def parse_exception_message(e)
      if e.kind_of?(RightSupport::Net::NoResult)
        # Expected format of exception message: "... endpoints: ('<ip address>' => <exception class name array>, ...)""
        i = 0
        e.message.split(/\[|\]/).select {((i += 1) % 2) == 0 }.map { |s| s.split(/,\s*/) }.flatten
      else
        [e.class.name]
      end
    end
def parse_exception_message(e)
      if e.kind_of?(RightSupport::Net::NoResult)
        # Expected format of exception message: "... endpoints: ('<ip address>' => <exception class name array>, ...)""
        i = 0
        e.message.split(/\[|\]/).select {((i += 1) % 2) == 0 }.map { |s| s.split(/,\s*/) }.flatten
      else
        [e.class.name]
      end
    end
Parse Exception message and return it

 The purpose of this method is to parse the message portion of RequestBalancer
 Exceptions to determine the actual Exceptions that resulted in all endpoints
 failing to return a non-Exception.

 === Parameters
 @param [Exception] Exception to parse

 === Return
 @return [Array] List of exception class names