import akka.actor.{Actor, ActorSystem, Props} import akka.util.Timeout import akka.pattern.ask import scala.concurrent.duration.Duration import scala.util.Failure class testAskActor extends Actor{ override def receive = { case msg: String => sender ! msg.toUpperCase } } object testAsk { def main(args:Array[String]) = { val system = ActorSystem.create("testAsk") val testActor = system.actorOf(Props[testAskActor]) import system.dispatcher implicit val timeout = new Timeout(Duration.create(1, "seconds")) val fut = testActor ? "hello" fut.onComplete{ case failed:Failure[akka.pattern.AskTimeoutException] => println(s"failed=" + failed) case result => println(s"$result") } } } 超时时输出如下的log: failed=Failure(akka.pattern.AskTimeoutException: Ask timed out on [Actor[akka://testAsk/user/$a#887126484]] after [1000 ms]. Sender[null] sent message of type "java.lang.String".)