|
NAMEMongoDB::Error - MongoDB Driver Error classesVERSIONversion v2.2.2SYNOPSISuse MongoDB::Error; MongoDB::Error->throw("a generic error"); MongoDB::DatabaseError->throw( message => $string, result => $hashref, ); DESCRIPTIONThis class defines a hierarchy of exception objects.USAGEUnless 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 HIERARCHYMongoDB::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:
MongoDB::AuthErrorThis error indicates a problem with authentication, either in the underlying mechanism or a problem authenticating with the server.MongoDB::ConnectionErrorErrors 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::ConfigurationErrorThis 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.6MongoDB::CursorNotFoundErrorThis error indicates that a cursor timed out on a server.MongoDB::DatabaseErrorErrors related to database operations. Specifically, when an error of this type occurs, the driver has received an error condition from the server.Attributes include:
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::DecodingErrorThis 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::DocumentErrorThis error indicates a problem with a document to be inserted or replaced into the database, or used as an update document.Attributes include:
MongoDB::GridFSErrorErrors related to GridFS operations, such a corrupted file.MongoDB::InternalErrorErrors that indicate problems in the driver itself, typically when something unexpected is detected. These should be reported as potential bugs.MongoDB::ProtocolErrorErrors related to the MongoDB wire protocol, typically problems parsing a database response packet.MongoDB::SelectionErrorWhen 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::TimeoutErrorThese 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::UsageErrorIndicates 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 CODESThe 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:
ERROR LABELSFrom 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):
AUTHORS
COPYRIGHT AND LICENSEThis software is Copyright (c) 2020 by MongoDB, Inc.This is free software, licensed under: The Apache License, Version 2.0, January 2004
Visit the GSP FreeBSD Man Page Interface. |