Provided by: libmongodb-perl_2.2.2-2_all bug

NAME

       MongoDB::Error - MongoDB Driver Error classes

VERSION

       version v2.2.2

SYNOPSIS

           use MongoDB::Error;
           MongoDB::Error->throw("a generic error");
           MongoDB::DatabaseError->throw(
               message => $string,
               result => $hashref,
           );

DESCRIPTION

       This class defines a hierarchy of exception objects.

USAGE

       Unless otherwise explicitly documented, all driver methods throw exceptions if an error occurs.

       To catch and handle errors, the Try::Tiny and Safe::Isa modules are recommended:

           use Try::Tiny;
           use Safe::Isa; # provides $_isa

           try {
               $coll->insert( $doc )
           }
           catch {
               if ( $_->$_isa("MongoDB::DuplicateKeyError" ) ) {
                   ...
               }
               else {
                   ...
               }
           };

       To retry failures automatically, consider using Try::Tiny::Retry.

EXCEPTION HIERARCHY

           MongoDB::Error
               |
               |->MongoDB::AuthError
               |
               |->MongoDB::ConnectionError
               |   |
               |   |->MongoDB::HandshakeError
               |   |
               |   |->MongoDB::NetworkError
               |
               |->MongoDB::ConfigurationError
               |
               |->MongoDB::DatabaseError
               |   |
               |   |->MongoDB::CursorNotFoundError
               |   |
               |   |->MongoDB::DuplicateKeyError
               |   |
               |   |->MongoDB::NotMasterError
               |   |
               |   |->MongoDB::WriteError
               |   |
               |   |->MongoDB::WriteConcernError
               |
               |->MongoDB::DecodingError
               |
               |->MongoDB::DocumentError
               |
               |->MongoDB::GridFSError
               |
               |->MongoDB::InternalError
               |
               |->MongoDB::InvalidOperationError
               |
               |->MongoDB::ProtocolError
               |
               |->MongoDB::SelectionError
               |
               |->MongoDB::TimeoutError
               |   |
               |   |->MongoDB::ExecutionTimeout
               |   |
               |   |->MongoDB::NetworkTimeout
               |
               |->MongoDB::UsageError

       All classes inherit from "MongoDB::Error".

       All error classes have the attribute:

       •   message — a text representation of the error

   MongoDB::AuthError
       This  error  indicates  a  problem  with  authentication, either in the underlying mechanism or a problem
       authenticating with the server.

   MongoDB::ConnectionError
       Errors related to network connections.

       MongoDB::HandshakeError

       This error is thrown when a connection has been made, but SSL or authentication handshakes fail.

       MongoDB::NetworkError

       This error is thrown when a socket error occurs, when the wrong number of bytes are read, or other  wire-
       related errors occur.

   MongoDB::ConfigurationError
       This  error  is  thrown  when  there  is  a  configuration  error  between the MongoDB deployment and the
       configuration of the client, such as when trying to use explicit sessions on a MongoDB < 3.6

   MongoDB::CursorNotFoundError
       This error indicates that a cursor timed out on a server.

   MongoDB::DatabaseError
       Errors related to database operations.  Specifically, when an error of this type occurs, the  driver  has
       received an error condition from the server.

       Attributes include:

       •   result — response from a database command; this must implement the "last_errmsg" method

       •   code  —  numeric  error  code;  see  "ERROR  CODES";  if  no  code  was provided by the database, the
           "UNKNOWN_ERROR" code will be substituted instead

       MongoDB::DuplicateKeyError

       This error indicates that a write attempted to create a document with a duplicate  key  in  a  collection
       with a unique index.  The "result" attribute is a result object.

       MongoDB::NotMasterError

       This  error  indicates that a write or other state-modifying operation was attempted on a server that was
       not a primary.  The "result" attribute is a MongoDB::CommandResult object.

       MongoDB::WriteError

       Errors indicating failure of a write command.  The "result" attribute is a result object.

       MongoDB::WriteConcernError

       Errors indicating failure of a write concern.  The "result" attribute is a result object.

   MongoDB::DecodingError
       This error indicates a problem during BSON decoding; it wraps the error provided by the  underlying  BSON
       encoder.  Note: Encoding errors will be thrown as a "MongoDB::DocumentError".

   MongoDB::DocumentError
       This  error  indicates a problem with a document to be inserted or replaced into the database, or used as
       an update document.

       Attributes include:

       •   document — the document that caused the error

   MongoDB::GridFSError
       Errors related to GridFS operations, such a corrupted file.

   MongoDB::InternalError
       Errors that indicate problems in the driver itself, typically  when  something  unexpected  is  detected.
       These should be reported as potential bugs.

   MongoDB::ProtocolError
       Errors related to the MongoDB wire protocol, typically problems parsing a database response packet.

   MongoDB::SelectionError
       When  server  selection fails for a given operation, this is thrown. For example, attempting a write when
       no primary is available or reading with a specific mode and tag set and no servers match.

   MongoDB::TimeoutError
       These errors indicate a user-specified timeout has been exceeded.

       MongoDB::ExecutionTimeout

       This error is thrown when a query or command fails because "max_time_ms" has been reached.  The  "result"
       attribute is a MongoDB::CommandResult object.

       MongoDB::NetworkTimeout

       This  error  is  thrown  when  a  network  operation exceeds a timeout, typically "connect_timeout_ms" or
       "socket_timeout_ms".

   MongoDB::UsageError
       Indicates invalid arguments or configuration options.  Not all usage errors will throw this —  only  ones
       originating  directly  from the MongoDB::* library files.  Some type and usage errors will originate from
       the Type::Tiny library if the objects are used incorrectly.

       Also used to indicate usage errors for transaction commands.

ERROR CODES

       The following error code constants are automatically exported by this module.

               BAD_VALUE                 => 2,
               UNKNOWN_ERROR             => 8,
               NAMESPACE_NOT_FOUND       => 26,
               EXCEEDED_TIME_LIMIT       => 50,
               COMMAND_NOT_FOUND         => 59,
               WRITE_CONCERN_ERROR       => 64,
               NOT_MASTER                => 10107,
               DUPLICATE_KEY             => 11000,
               DUPLICATE_KEY_UPDATE      => 11001, # legacy before 2.6
               DUPLICATE_KEY_CAPPED      => 12582, # legacy before 2.6
               UNRECOGNIZED_COMMAND      => 13390, # mongos error before 2.4
               NOT_MASTER_NO_SLAVE_OK    => 13435,
               NOT_MASTER_OR_SECONDARY   => 13436,
               CANT_OPEN_DB_IN_READ_LOCK => 15927,

       This is a very, very small subset of error codes possible from the server, but covers some  of  the  more
       common ones seen by drivers.

       Note:

       •   Only "MongoDB::DatabaseError" objects have a "code" attribute.

       •   The   database   uses   multiple   write   concern   error  codes.   The  driver  maps  them  all  to
           WRITE_CONCERN_ERROR for consistency and convenience.

ERROR LABELS

       From MongoDB 4.0 onwards, errors may contain an error labels field. This field  is  populated  for  extra
       information from either the server or the driver, depending on the error.

       Known error labels include (but are not limited to):

       •   "TransientTransactionError" - added when network errors are encountered inside a transaction.

       •   "UnknownTransactionCommitResult"  - added when a transaction commit may not have been able to satisfy
           the provided write concern.

AUTHORS

       •   David Golden <david@mongodb.com>

       •   Rassi <rassi@mongodb.com>

       •   Mike Friedman <friedo@friedo.com>

       •   Kristina Chodorow <k.chodorow@gmail.com>

       •   Florian Ragwitz <rafl@debian.org>

COPYRIGHT AND LICENSE

       This software is Copyright (c) 2020 by MongoDB, Inc.

       This is free software, licensed under:

         The Apache License, Version 2.0, January 2004

perl v5.34.0                                       2022-06-30                                MongoDB::Error(3pm)