如何在Akka Streams中获取导致失败的对象?

根据akka streams docs,可以通过定义将 Throwable 映射到 Strategy 的决策程序来处理流故障:

val decider: Supervision.Decider = {
  case _: ArithmeticException => Supervision.Resume
  case _                      => Supervision.Stop
}

我想知道是否有办法访问导致错误的元素 . 当然,这个元素的类型是未知的,但有没有办法让它甚至作为 Object 的实例?

回答(1)

2 years ago

琐碎的方法是捕获它附近的 ArithmeticException 并抛出自定义异常 MyDetailedArithmeticException(culprit: Int) ,它将打印导致消息中出现问题的 int .