我是Akka / Scala的新手,我正在尝试调试下面的代码。当watchException()
有异常时,它不会抛出异常。相反,使用此代码的服务永远处于空闲状态。
如何让我的服务抛出异常而不是仅仅在流上等待?在Akka中是否有类似watchTermination()
函数的东西,我可以在val chunkSource: Source[ChunkStreamPart, NotUsed] =
Source
.fromIterator(() => resultSetParser(resultSet) map ChunkStreamPart.apply)
.watchTermination()((mat : NotUsed, fut : Future[Done]) => {
watchTermination(fut)
mat
})
val chunkEntity = Chunked(ContentTypes.`application/json`, chunkSource)
之后调用它来抛出它在处理流时看到的异常?
ID | VALUE
id_1 | 1, 2, 3, 4, 5
id_2 | 6, 7, 8, 9, 10
id_3 | 11, 12, 13, 14, 15
答案 0 :(得分:2)
您是否尝试过使用recover
?
例如(未经测试):
Source
.fromIterator(() => resultSetParser(resultSet) map ChunkStreamPart.apply)
.recover{
case _: RuntimeException => ??? /* Return ChunkStreamPart here */
}