Драйвер Java mongodb, как вы ловите исключения?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Драйвер Java mongodb, как вы ловите исключения?

Сообщение Anonymous »

Я хочу иметь возможность определять, доступен ли сервер MongoDB с помощью драйвера Java, чтобы реагировать на любые аномальные события, как это было бы в JDBC и т. д. Все работает нормально, когда сервер включен, но я изо всех сил пытаюсь понять, почему так сложно обнаружить ошибки. У меня такое ощущение, что это потому, что клиент MongoDB работает в другом потоке и не возвращает мне сообщение или что-то в этом роде?

Код: Выделить всё

try {
MongoClient mongoClient = new MongoClient("localhost", 27017);
MongoDatabase db = mongoClient.getDatabase("mydb");
// if db is down or error getting people collection handle it in catch block
MongoCollection people = commentarr.getCollection("people");
} catch (Exception e) {
// handle server down or failed query here.
}
Результат:

ИНФОРМАЦИЯ: Исключение в потоке монитора при подключении к локальному серверу: 27017

В результате трассировка стека содержит несколько различных исключений, которые я пытался перехватить, но мои блоки catch все равно ничего не сделали.

Код: Выделить всё

com.mongodb.MongoSocketOpenException: Exception opening socket
Caused by: java.net.ConnectException: Connection refused
Я использую драйвер Java MongoDB 3.0.4, большинство сообщений, которые я читаю, взяты из более старого API с хаками, такими как MongoClient.getDatabaseNames(), который выдает MongoException в случае ошибки, за исключением того, что сейчас он устарел и заменен на MongoClient.listDatabaseNames(), который не имеет такой же семантики выдачи ошибок.
Есть ли способ просто выполнить запрос MongoDB из драйвера Java в блоке try catch и действительно перехватить исключение?

Подробнее здесь: https://stackoverflow.com/questions/345 ... exceptions
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»