如何捕获由以下代码引起的异常?如何在Java中连接到MongoDB时捕获异常?
try {
MongoCredential credential = MongoCredential.createCredential(
cu.getName(),
"admin",
cu.getPassword().toCharArray());
ServerAddress address = new ServerAddress("localhost", 27017);
mongoClient = new MongoClient(address, Arrays.asList(credential));
} catch (MongoSecurityException e) {
System.out.println("test");
}
我在堆栈跟踪中遇到了异常,但我无法捕获它们。
麦29,2017年上午01时04分37秒com.mongodb.diagnostics.logging.JULLogger登录 信息:与设置{主机= [本地主机:27017]创建集群,模式= SINGLE,requiredClusterType =未知, serverSelectionTimeout ='30000 ms',maxWaitQueueSize = 500} Mai 29,2017 1:04:37 AM com.mongodb.diagnostics.logging.JULLogger日志 信息:连接到服务器localhost时监视线程中的异常:27017 com.mongodb .MongoSecurityException:在com.mongodb.connection.SaslAuthenticator.wrapInMongoSecurityException(SaslAuthenticator.java:157)上验证MongoCredential {机制= null,userName ='root',source ='admin',password =,mechanismProperties = {}}的异常at com.mongodb.connection.SaslAuthenticator.access $ 200(SaslAuthenticator.java:37) at com.mongodb.connection.SaslAuthenticator $ 1.run(SaslAuthenticator.java:66) at com.mongodb.connection.SaslAuthenticator $ 1.run (SaslAuthenticator.java:44) 在com.mongodb.connection.SaslAuthenticator.doAsSubject(SaslAuthenticator.java:162) 在com.mongodb.connection.SaslAuthenticator.authenticate(SaslAuthenticator.java:44) 在com.mongodb.connection .DefaultAuthenticator.authenticate(DefaultAuthenticator.java:32) 在com.mongodb.connection.InternalStreamConnectionInitializer.authenticateAll(InternalStreamConnectionInitializer.java:109) 在com.mongodb.connection.InternalStreamConnectionInitializer.initialize(InternalStreamConnectionInitializer.java:46) at com.mongodb.connection.InternalStreamConnection.open(InternalStreamConnection.java:116) at com.mongodb.connection.DefaultServerMonitor $ ServerMonitorRunnable.run(DefaultServerMonitor.java:113) at java.lang.Thread.run(Unknown Source ) 引起:com.mongodb.MongoCommandException:命令失败,错误18:'验证失败。'在服务器localhost:27017上。完整的响应是{“ok”:0.0,“errmsg”:“身份验证失败。”,“code”:18,“codeName”:“AuthenticationFailed”} at com.mongodb.connection.CommandHelper.createCommandFailureException(CommandHelper.java :170) 在com.mongodb.connection.CommandHelper.receiveCommandResult(CommandHelper.java:123) 在com.mongodb.connection.CommandHelper.executeCommand(CommandHelper.java:32) 在com.mongodb.connection.SaslAuthenticator.sendSaslContinue (SaslAuthenticator.java:121) 在com.mongodb.connection.SaslAuthenticator.access $ 100(SaslAuthenticator.java:37) 在com.mongodb.connection.SaslAuthenticator $ 1.run(SaslAuthenticator.java:63) ... 9更多 `
如果你看看其余的回溯,你可能会发现抛出的代码不在你的try块内。 – bmargulies