Конструкторите на MongoClient не хвърлят никакви изключения, свързани със свързаността. По-скоро те се връщат веднага след стартиране на една или повече фонови нишки, които се опитват да установят връзка и да се удостоверят въз основа на предоставените идентификационни данни.
Само когато дадено приложение използва MongoClient за извършване на някаква операция на сървъра на MongoDB, ще бъде изведено изключение. Това изключение обаче е общо изключение за изчакване, което показва, че драйверът не е успял да намери подходящ сървър за операцията, преди да изтече времето за изчакване на избор на сървър. Например:
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
}
ще хвърли MongoTimeoutException след 1 секунда. Въпреки че не се извежда MongoSecurityException, съобщението на MongoTimeoutException ще съдържа съответните подробности. Например, когато се свързвате към набор от три члена реплика, когато един от сървърите не работи и удостоверяването е неуспешно на останалите два, полето за съобщение на MongoTimeoutException ще бъде нещо като:
Времето за изчакване изтече след 1000 ms, докато се чака сървър, който съответства наReadPreferenceServerSelector{readPreference=primary}. Клиентският изглед на състоянието на клъстера е {type=UNKNOWN, servers=[{address=localhost:27017,type=UNKNOWN, state=CONNECTING,exception={com.mongodb.MongoSocketOpenException:Exception opensocket}, причинено от {java.net.ConnectException:Връзката е отказана}},{адрес=localhost:27018, type=UNKNOWN, state=CONNECTING,exception={com.mongodb.MongoSecurityException:Exceptionauthenticating MongoCredential{mechanism=null, userName='username',source='admin', password=, mehanizamProperties={}}}, причинено от{com.mongodb.MongoCommandException:Командата е неуспешна с грешка 18:'Удостоверяването не бе успешно.' на сървър localhost:27018. Пълният отговор е { "ok" :0.0, "code" :18, "errmsg" :"Удостоверяването не бе успешно." }}}]