为什么Actor.receive是部分功能?

时间:2016-12-21 10:34:15

标签: scala akka

为什么Actor.receive是部分功能?我总是可以使用匹配表达式而不是它的常规函数​​。

2 个答案:

答案 0 :(得分:4)

PartialFunction用于捕获Actor处理或取消处理邮件的可能性。未处理的消息将

  1. 不要使用MatchError
  2. 使Actor失败
  3. UnhandledMessage事件生成到事件流
  4. 更多信息here

答案 1 :(得分:3)

一个原因是部分函数有isDefinedAt方法,它允许Akka检查是否可以处理消息而不从用户代码中捕获scala.MatchError异常。