当前位置:  开发笔记 > 编程语言 > 正文

java mongodb驱动程序如何捕获异常?

如何解决《javamongodb驱动程序如何捕获异常?》经验,为你挑选了0个好方法。

我想能够检测一下mongo服务器是否可以从java驱动程序中获取,以便对任何异常事件作出反应,就像在JDBC登陆中那样.当服务器启动时,一切正常,但我很难理解为什么检测错误非常困难.我有一种感觉,因为mongo客户端运行在一个不同的线程,它不会扔给我或什么?

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.
    }

结果是

INFO: Exception in monitor thread while connecting to server localhost:27017

由此产生的堆栈跟踪包含一些我试图捕获的不同异常但我的catch块仍然没有做任何事情.

com.mongodb.MongoSocketOpenException: Exception opening socket
Caused by: java.net.ConnectException: Connection refused

我使用的是java mongodb驱动程序3.0.4,我读过的大多数帖子都来自较旧的API,其中的hack MongoClient.getDatabaseNames()会抛出MongoExceptionif if errors,除了现在已经弃用并替换为MongoClient.listDatabaseNames()没有相同的错误抛出语义.

有没有办法在try catch块中从java驱动程序执行mongo查询并实际捕获异常?

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有