Я имею дело с некоторым кодом, включающим несколько операций ввода-вывода с блокировкой, которые должны выполняться последовательно.Контекст представляет собой веб-приложение на основе JVM, работающее на Java 8 и Tomcat.У меня есть код, который выполняет три операции в последовательности.Все они имеют блокирующий характер, и выходные данные каждой операции могут использоваться в последующей операции.Каждая операция может выдавать исключения, как проверенные, так и непроверенные.Я проиллюстрировал несколько примеров исключений, которые могут быть выданы:
String output1 = callToRestAPI(); // throws MalformedUrlException, ConcurrentModificationException
callToDatabase(output1); // throws SQLException, ConcurrentModificationException
boolean output2 = callToSendEmail(output1); // throws MessagingException
Как бы я написал это, используя многообещающие (без каламбура) Java 8 CompletionStage и CompletableFuture?