Class: Tochtli::BaseClient::AbstractMessageHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/tochtli/base_client.rb

Direct Known Subclasses

MessageHandler, SyncMessageHandler

Instance Method Summary collapse

Instance Method Details

#reconstruct_exception(error_message) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# 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