Java 如何捕获异步执行中的astyanax失败

Java 如何捕获异步执行中的astyanax失败,java,asynchronous,cassandra,astyanax,Java,Asynchronous,Cassandra,Astyanax,我工作的项目使用astyanax驱动程序访问Cassandra。我想实现一个异步操作: MutationBatch m; //… ListenableFuture<OperationResult<Void>> lf = m.executeAsync(); lf.addListener(myRunnableCallback, myExecutor); MutationBatch m; //… ListenableFuture lf=m.executeAsync(); lf

我工作的项目使用astyanax驱动程序访问Cassandra。我想实现一个异步操作:

MutationBatch m;
//…
ListenableFuture<OperationResult<Void>> lf = m.executeAsync();
lf.addListener(myRunnableCallback, myExecutor);
MutationBatch m;
//…
ListenableFuture lf=m.executeAsync();
lf.addListener(myRunnableCallback、myExecutor);
问题:假设在
executeAsync()
调用中没有立即抛出异常,如何区分成功执行和失败执行


我能想到的唯一方法是,当调用完成回调时,
lf.get()
在失败时抛出异常。如果这是正确的方法,astyanax sources中是否有一个文档或行确认了这一点?

我找到了一个解决方法:代替
ListenableFuture
addListener
方法,使用
Runnable
参数,我可以使用
Futures.addCallback(ListenableFuture,FutureCallback,Executor)
FutureCallback
有两种方法:
onSuccess
onFailure
。这就解决了我的问题