Class: Tochtli::ErrorHandler

Inherits:
Middleware show all
Defined in:
lib/tochtli/application.rb

Instance Method Summary collapse

Methods inherited from Middleware

#initialize

Constructor Details

This class inherits a constructor from Tochtli::Middleware

Instance Method Details

#call(env) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/tochtli/application.rb', line 44

def call(env)
  @app.call(env)
rescue Exception => ex
  properties = env[:properties] || {}
  controller = env[:controller]
  logger     = env[:logger]

  logger.error "\n#{ex.class.name} (#{ex.message})"
  logger.error ex.backtrace.join("\n")
  if controller && properties[:reply_to]
    begin
      controller.reply ErrorMessage.new(error: ex.class.name, message: ex.message), properties[:reply_to], properties[:message_id]
    rescue
      logger.error "Unable to send error message: #{$!}"
      logger.error $!.backtrace.join("\n")
    end
  end
  false
end