В методе запуска моего приложения я хочу убедиться, что учетные данные для MongoDB, предоставленные приложению, в порядке. Если они в порядке, я продолжаю запуск, если нет, приложение должно завершиться, поскольку оно не может подключиться к БД. Фрагмент кода, как показано ниже:
// Create the client
MongoClient mongodb = null;
try {
mongodb = MongoClient.createShared(vertx, mongo_cnf, mongo_cnf.getString("pool_name"));
}
catch(Exception e) {
log.error("Unable to create MongoDB client. Cause: '{}'. Bailing out", e.getMessage());
System.exit(-1);
}
Если я предоставляю неверные учетные данные, блок catch
не вызывается. Тем не менее, я получаю на консоли следующее:
19:35:43.017 WARN org.mongodb.driver.connection - Exception thrown during connection pool background maintenance task
com.mongodb.MongoSecurityException: Exception authenticating MongoCredential{mechanism=null, userName='user', source='admin', password=<hidden>, mechanismProperties={}}
at com.mongodb.connection.SaslAuthenticator.wrapException(SaslAuthenticator.java:162)
at com.mongodb.connection.SaslAuthenticator.access$200(SaslAuthenticator.java:39)
... many lines
Вопрос : как перехватить это исключение в моем коде и уметь его правильно обрабатывать?