Sha256: 8d3c2ab4360f4b2952570ca21e17749de9fddfc4679b757990203f7f992a9e12
Contents?: true
Size: 1.39 KB
Versions: 2
Compression:
Stored size: 1.39 KB
Contents
# frozen_string_literal: true module Aws::SessionStore::DynamoDB::Errors # This class handles errors raised from DynamoDB. class DefaultHandler < Aws::SessionStore::DynamoDB::Errors::BaseHandler # Array of errors that will always be passed up the Rack stack. HARD_ERRORS = [ Aws::DynamoDB::Errors::ResourceNotFoundException, Aws::DynamoDB::Errors::ConditionalCheckFailedException, Aws::SessionStore::DynamoDB::Errors::MissingSecretKeyError, Aws::SessionStore::DynamoDB::Errors::LockWaitTimeoutError ].freeze # Determines behavior of DefaultErrorHandler # @param [true] raise_errors Pass all errors up the Rack stack. def initialize(raise_errors) super() @raise_errors = raise_errors end # Raises {HARD_ERRORS} up the Rack stack. # Places all other errors in Racks error stream. def handle_error(error, env = {}) raise error if HARD_ERRORS.include?(error.class) || @raise_errors store_error(error, env) false end # Sends error to error stream def store_error(error, env = {}) env['rack.errors'].puts(errors_string(error)) if env end # Returns string to be placed in error stream def errors_string(error) str = [] str << "Exception occurred: #{error.message}" str << 'Stack trace:' str += error.backtrace.map { |l| " #{l}" } str.join("\n") end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
aws-sessionstore-dynamodb-3.0.1 | lib/aws/session_store/dynamo_db/errors/default_handler.rb |
aws-sessionstore-dynamodb-3.0.0 | lib/aws/session_store/dynamo_db/errors/default_handler.rb |