Konstruktory MongoClient nevyvolávají žádné výjimky související s připojením. Spíše se vrátí okamžitě po spuštění jednoho nebo více vláken na pozadí, která se pokoušejí navázat spojení a ověřit se na základě poskytnutých přihlašovacích údajů.
Výjimka bude vyvolána pouze tehdy, když aplikace používá MongoClient k provedení nějaké operace na serveru MongoDB. Tato výjimka je však obecná výjimka časového limitu indikující, že ovladač nenalezl vhodný server pro operaci před vypršením časového limitu výběru serveru. Například:
MongoClient client = new MongoClient(asList(new ServerAddress("localhost"), new ServerAddress("localhost:27018")),
singletonList(MongoCredential.createCredential("username",
"admin",
"bad".toCharArray())),
MongoClientOptions.builder().serverSelectionTimeout(1000).build());
try {
client.getDB("admin").command("ping");
} catch (MongoTimeoutException e) {
// do something
}
po 1 sekundě vyvolá výjimku MongoTimeoutException. I když není vyvolána žádná výjimka MongoSecurityException, zpráva výjimky MongoTimeout bude obsahovat relevantní podrobnosti. Když se například připojujete k sadě tříčlenných replik, když je jeden ze serverů mimo provoz a ověření se nezdařilo na zbývajících dvou, pole zprávy MongoTimeoutException bude vypadat takto:
Časový limit vypršel po 1000 ms při čekání na server, který odpovídáReadPreferenceServerSelector{readPreference=primary}. Klientský pohled na stav clusteru je {type=UNKNOWN, servers=[{address=localhost:27017,type=UNKNOWN, state=CONNECTING,exception={com.mongodb.MongoSocketOpenException:Výjimka openingsocket} způsobená {java.net.ConnectException:Připojení odmítnuto}},{address=localhost:27018, type=UNKNOWN, state=CONNECTING,exception={com.mongodb.MongoSecurityException:Exceptionauthenticating MongoCredential{mechanism=null, userName='username',source='admin', password=, mechanismProperties={}}}, způsobeno {com.mongodb.MongoCommandException:Příkaz se nezdařil s chybou 18:'Autentizace selhala.' na serveru localhost:27018. Úplná odpověď je { "ok" :0,0, "kód" :18, "errmsg" :"Ověření se nezdařilo." }}}]