class Tochtli::ErrorHandler

Public Instance Methods

call(env) click to toggle source
# 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