在使用Akka的数据流DSL时,我有两次遇到需要在未来有条件地抛出异常。我就是这样做的:
flow {
// ...
if (someCond)
shiftUnit(throw new SomeException)
else
Future().apply()
// ...
}
这是正确的方法吗?或者有更好的方法吗?
答案 0 :(得分:2)
这种方法似乎是正确的(虽然我的知识有点生疏),你甚至可以省略其他分支,下面的工作对我来说(Scala 2.10.1):
flow { if (x == 2) shiftUnit(throw new Exception) }
会产生Future[Unit]
。