如何解决Pelops-捕获连接错误?
| 在Java中使用pelops时,是否有办法捕获连接错误?我有以下代码,但是由于某种原因,我没有进入catch块。public static Boolean testDBConnection() throws PelopsException {
try{
Cluster cluster = new Cluster(\"127.0.0.1\",9160);
Pelops.addPool(pool,cluster,keyspace);
Pelops.shutdown();
return true;
}
catch(PelopsException e)
{
System.out.println(\"SOMETHING WENT WRONG!\");
System.out.println(e.getMessage());
return false;
}
}
这可能确实很容易,但是我似乎无法使其正常工作。我看到了例外情况,但是没有办法可以抓住吗?有人可以引导我朝正确的方向前进吗?
谢谢!
编辑-在Eclipse控制台中返回异常...
15:47:33.545 [main] DEBUG o.s.c.pelops.pool.CommonsBackedPool - Made new connection \'Connection[Testing][127.0.0.1:9160][724408050]\'
15:47:34.545 [main] ERROR o.scale7.cassandra.pelops.Connection - Failed to open transport. See cause for details...
org.apache.thrift.transport.TTransportException: java.net.ConnectException: Connection refused: connect
at org.apache.thrift.transport.TSocket.open(TSocket.java:185) ~[libthrift-0.5.0.jar:na]
at org.apache.thrift.transport.TFramedTransport.open(TFramedTransport.java:81) ~[libthrift-0.5.0.jar:na]
at org.scale7.cassandra.pelops.Connection.open(Connection.java:70) ~[scale7-pelops-0.913.jar:na]
at org.scale7.cassandra.pelops.pool.CommonsBackedPool$ConnectionFactory.makeObject(CommonsBackedPool.java:785) [scale7-pelops-0.913.jar:na]
at org.apache.commons.pool.impl.GenericKeyedObjectPool.addObject(GenericKeyedObjectPool.java:1685) [commons-pool-1.5.5.jar:1.5.5]
at org.apache.commons.pool.impl.GenericKeyedObjectPool.ensureMinIdle(GenericKeyedObjectPool.java:2058) [commons-pool-1.5.5.jar:1.5.5]
at org.apache.commons.pool.impl.GenericKeyedObjectPool.preparePool(GenericKeyedObjectPool.java:1722) [commons-pool-1.5.5.jar:1.5.5]
at org.scale7.cassandra.pelops.pool.CommonsBackedPool.addNode(CommonsBackedPool.java:373) [scale7-pelops-0.913.jar:na]
at org.scale7.cassandra.pelops.pool.CommonsBackedPool.<init>(CommonsBackedPool.java:104) [scale7-pelops-0.913.jar:na]
at org.scale7.cassandra.pelops.pool.CommonsBackedPool.<init>(CommonsBackedPool.java:64) [scale7-pelops-0.913.jar:na]
at org.scale7.cassandra.pelops.pool.CommonsBackedPool.<init>(CommonsBackedPool.java:52) [scale7-pelops-0.913.jar:na]
at org.scale7.cassandra.pelops.Pelops.addPool(Pelops.java:25) [scale7-pelops-0.913.jar:na]
at libraries.cassandra.testDBConnection(cassandra.java:192) [classes/:na]
at libraries.cassandra.main(cassandra.java:38) [classes/:na]
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:1.6.0_25]
at java.net.PlainSocketImpl.doConnect(Unknown Source) ~[na:1.6.0_25]
at java.net.PlainSocketImpl.connectToAddress(Unknown Source) ~[na:1.6.0_25]
at java.net.PlainSocketImpl.connect(Unknown Source) ~[na:1.6.0_25]
at java.net.SocksSocketImpl.connect(Unknown Source) ~[na:1.6.0_25]
at java.net.Socket.connect(Unknown Source) ~[na:1.6.0_25]
at org.apache.thrift.transport.TSocket.open(TSocket.java:180) ~[libthrift-0.5.0.jar:na]
... 13 common frames omitted
解决方法
抛出org.apache.thrift.TTransportException的异常是经过检查的异常,该异常未由扩展RuntimeException的PelopsException捕获和包装。
如果希望方法始终返回PelopsException,则必须加2,然后在catch块中抛出新的PelopsException(e.getMessage())。
catch(Exception e)
{
System.out.println(\"SOMETHING WENT WRONG!\");
System.out.println(e.getMessage());
throw new PelopsException(e.getMessage());
}
, 它可能会引发未经检查的异常或错误(不是异常)。
尝试将代码更改为catch (Throwable e)
,然后看看会得到什么。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。