Я хочу преобразовать Twitter Future [Boolean], который является ложным, в исключительное будущее.
Один из способов сделать это - отфильтровать, а затем передать PartialFunction в rescue
:
theFuture
.filter(b => b) // if b is false, becomes exceptional
.rescue {
case Try.PredicateDoesNotObtain
=> Future.exception(new MyPreferredExceptionType())
}
Другим способом было бы flatMap:
theFuture
.flatMap(b => if (b) Future.value(b) else Future.exception(new MyPreferredExceptionType())
Но оба способа кажутся неуклюжими и не идиоматическими.Предложения?