Method: Mongo::Error::OperationFailure::Family#initialize

Defined in:
lib/mongo/error/operation_failure.rb

#initialize(message = nil, result = nil, options = {}) ⇒ Object

Create the operation failure.

Parameters:

  • message (String) (defaults to: nil)

    The error message.

  • result (Operation::Result) (defaults to: nil)

    The result object.

  • options (Hash) (defaults to: {})

    Additional parameters.

Options Hash (options):

  • :code (Integer)

    Error code.

  • :code_name (String)

    Error code name.

  • :document (BSON::Document)

    The server-returned error document.

  • server_message (String)

    The server-returned error message parsed from the response.

  • :write_concern_error_document (Hash)

    The server-supplied write concern error document, if any.

  • :write_concern_error_code (Integer)

    Error code for write concern error, if any.

  • :write_concern_error_code_name (String)

    Error code name for write concern error, if any.

  • :write_concern_error_labels (Array<String>)

    Error labels for the write concern error, if any.

  • :labels (Array<String>)

    The set of labels associated with the error.

  • :wtimeout (true | false)

    Whether the error is a wtimeout.

Since:

  • 2.0.0



187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
# File 'lib/mongo/error/operation_failure.rb', line 187

def initialize(message = nil, result = nil, options = {})
  @details = retrieve_details(options[:document])
  super(append_details(message, @details))

  @result = result
  @code = options[:code]
  @code_name = options[:code_name]
  @write_concern_error_document = options[:write_concern_error_document]
  @write_concern_error_code = options[:write_concern_error_code]
  @write_concern_error_code_name = options[:write_concern_error_code_name]
  @write_concern_error_labels = options[:write_concern_error_labels] || []
  @labels = options[:labels] || []
  @wtimeout = !!options[:wtimeout]
  @document = options[:document]
  @server_message = options[:server_message]
end