【发布时间】:2016-05-09 13:14:41
【问题描述】:
我正在使用 spymemcached-2.8.4.jar 和 jdk.1.7。
这是我的代码
try {
MemcachedClient client = new MemcachedClient(...);
client.set('name', 1000, 'some_name');
}catch(Exception ex){
System.out.println("Exception occurred");
System.out.println(ex.getMessage());
ex.printStackTrace();
logExceptionInDB(ex);
}
在我的扫描中,我的 memcached 机器没有运行,所以它在控制台中打印以下异常,
java.net.ConnectException: Connection refused
at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:735)
at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:369)
at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:242)
at net.spy.memcached.MemcachedConnection.run(MemcachedConnection.java:836)
但我想抓住这个例外,把它写到数据库中。如何捕捉这个异常?
【问题讨论】:
-
你正在捕捉到异常......只需按照你想要的方式处理它。
-
您的控制台是否打印 - “发生异常”?如果是这样,那么您已经捕获了异常,请使用 JDBC 连接器连接到 DB 并保留错误消息(ex.getMessage())。
-
实际上没有,实际上它是一个异步调用,使用 FutureTask 实现。在被调用的线程内部,它正在打印异常,没有抛出任何东西。
标签: java memcached spymemcached