why not make this interface return a ListenableFuture. This way you could attach a callback to the future and also have control over how to handle exceptions.