Akka Failure消息如何工作?

时间:2016-05-29 07:49:51

标签: scala akka

我使用Failure消息让发件人知道出了问题。使用sender() ! Failure(new RuntimeException())

回复发件人

它是在演员或发件人方面抛出异常(或者两者都没有)?

1 个答案:

答案 0 :(得分:1)

有(至少)两个Failure类,scala.util.Failure是Scala Try API中的一种类型,类似于{{{{{ 1}}。您可以在scaladocs for Try

中找到有关它的更多信息

另一个是try-catch的一部分,它是一个类似的ADT,但更简单的API表示值成功或异常失败。它在Akka内部使用,但也由一些公共API使用,例如akka.actor.Status模式,它将未来的结果作为消息发送到pipein the Akka docs)。

发送和接收ActorRef时,不会自动执行任何特殊操作,因此在接收方,您必须在Failure上匹配才能在您的演员中接受此类消息。

由于可以编写接收块,您可以自己定义Failure的可重用处理,并与演员的常规接收块结合,for example as described here