class Mongo::Error::OperationFailure

Raised when an operation fails for some reason.

@since 2.0.0

Constants

RETRY_MESSAGES

These are magic error messages that could indicate a cluster reconfiguration behind a mongos. We cannot check error codes as they change between versions, for example 15988 which has 2 completely different meanings between 2.4 and 3.0.

@since 2.1.1

WRITE_RETRY_MESSAGES

These are magic error messages that could indicate a master change.

@since 2.4.2

Public Class Methods

new(message = nil, result = nil) click to toggle source

Create the operation failure.

@example Create the error object

OperationFailure.new(message, result)

param [ String ] message The error message. param [ Operation::Result ] result The result object.

@since 2.5.0

Calls superclass method
# File lib/mongo/error/operation_failure.rb, line 88
def initialize(message = nil, result = nil)
  @result = result
  super(message)
end

Public Instance Methods

retryable?() click to toggle source

Can the read operation that caused the error be retried?

@example Is the error retryable?

error.retryable?

@return [ true, false ] If the error is retryable.

@since 2.1.1

# File lib/mongo/error/operation_failure.rb, line 63
def retryable?
  RETRY_MESSAGES.any?{ |m| message.include?(m) }
end
write_retryable?() click to toggle source

Can the write operation that caused the error be retried?

@example Is the error retryable for writes?

error.write_retryable?

@return [ true, false ] If the error is retryable.

@since 2.4.2

# File lib/mongo/error/operation_failure.rb, line 75
def write_retryable?
  WRITE_RETRY_MESSAGES.any? { |m| message.include?(m) }
end