Dlaczego jest wyjątek wDlaczego Akka Streams połyka moje wyjątki?
import akka.actor.ActorSystem
import akka.stream.ActorMaterializer
import akka.stream.scaladsl.Source
object TestExceptionHandling {
def main(args: Array[String]): Unit = {
implicit val actorSystem = ActorSystem()
implicit val materializer = ActorMaterializer()(defaultActorSystem)
Source(List(1, 2, 3)).map { i =>
if (i == 2) {
throw new RuntimeException("Please, don't swallow me!")
} else {
i
}
}.runForeach { i =>
println(s"Received $i")
}
}
}
zignorowane? Widzę, że strumień zostaje zatrzymany po wydrukowaniu Received 1
, ale nic nie jest rejestrowane. Zauważ, że problemem nie jest ogólnie konfiguracja rejestrowania, ponieważ widzę dużo danych wyjściowych, jeśli ustawię akka.log-config-on-start = on
w moim pliku application.conf
.
pan rzuca wyjątek z dala od zignorować wartość zwracaną 'runForeach'. –
@ViktorKlang dzięki za wskazanie, właśnie zaktualizowałem swoją odpowiedź! –