我有时会发现自己正在进行验证并使用Future.failed来理解Futures。我发现它非常有用,但另一方面,我从未在其他人的代码中看到过这种技术。
示例:
for {
user <- db.getUsers("Mark")
doesNotExist <- Future.failed(UserDoesNotExistsException("Mark")) if user.size < 0
userProducts <- db.getUsersProducts(user)
} yield usersProducts
然后客户端可以匹配失败并确切知道哪个步骤失败。
这样的代码不是一个好习惯吗?