私たちの API のコンシューマが例外を処理する必要がないようにしたいことはわかっています。または、より明確に、例外が常にログに記録されるようにしたいのですが、成功を処理する方法を知っているのは消費者だけです。クライアントが必要に応じて例外を処理できるようにしたいのですが、クライアントにFile
返すことができる有効なものはありません。
注:FileDownload
はSupplier<File>
@Override
public CompletableFuture<File> processDownload( final FileDownload fileDownload ) {
Objects.requireNonNull( fileDownload );
fileDownload.setDirectory( getTmpDirectoryPath() );
CompletableFuture<File> future = CompletableFuture.supplyAsync( fileDownload, executorService );
future... throwable -> {
if ( throwable != null ) {
logError( throwable );
}
...
return null; // client won't receive file.
} );
return future;
}
内容がよくわかりませんCompletionStage
。またはを使用しますexception
かhandle
?元の未来を返すか、それとも彼らが返す未来を返すか?