Sha256: c562561ae0fc979fdd97aafecbef6a2fa3770a4c9d4d67969162f4ea4beaeb5d

Contents?: true

Size: 550 Bytes

Versions: 1

Compression:

Stored size: 550 Bytes

Contents

module Endow
  module ErrorHandling

  protected

    def retryable_errors
      graceful_errors
    end

    def graceful_errors
      graceful_errors_map.keys
    end

    def graceful_errors_map
      raise NotImplementedError
    end

    def with_graceful_error_handling( &block )
      block.call
    rescue *graceful_errors => e
      msg = "#{self.class.name}: #{graceful_errors_map[e.class][:msg]}"
      log_graceful_error( msg )
      raise graceful_errors_map[e.class][:klass],
            msg,
            e.backtrace
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
endow-0.1.0 lib/endow/error_handling.rb