class Tochtli::BaseClient::AbstractMessageHandler

Public Instance Methods

reconstruct_exception(error_message) click to toggle source
# File lib/tochtli/base_client.rb, line 40
def reconstruct_exception(error_message)
  if error_message.is_a?(Exception)
    error_message
  else
    if error_message.is_a?(ErrorMessage)
      error   = error_message.error
      message = error_message.message
      # Look for exception definition on client system
      exception_class = error.constantize rescue nil
      if exception_class < StandardError
        # Use known exception if found
        exception = exception_class.new(message)
      else
        # If the exception is not defined use generic InternalServiceError
        exception = InternalServiceError.new(error, message)
      end
    else
      exception = InternalServiceError.new(error_message.to_s)
    end
    exception.set_backtrace caller(0)
    exception
  end
end