Если вы хотите, чтобы ваш внешний метод возвращал CompletableFuture
, то обычно лучше, если он всегда возвращает CompletableFuture
- без бросков и нулей.
Таким образомвызывающая сторона должна обрабатывать исключения или обнулять только один путь.
Когда внешний метод выполняет синхронный вызов, убедитесь, что он находится в блоке try
, перехватите любое исключение и верните исключительно завершенный CompletableFuture
для него.
Если вы используете Java 9 или выше, вы можете использовать CompletableFuture.failedFuture
, чтобы сделать ошибку в будущем.В противном случае вам, вероятно, следует создать вспомогательный метод, который создаст новое будущее и сразу вызовет completeExceptionally
.