Scala 播放框架,该方法何时停止执行?

Scala 播放框架,该方法何时停止执行?,scala,playframework,Scala,Playframework,在上面的方法中,调用Ok()后方法是否停止执行?就像在普通Scala中一样,块末尾的语句是返回的语句,即在这种情况下返回BadRequest。除非由于某种原因Ok包含副作用(我怀疑它会有副作用),否则示例中的Ok()函数调用实际上不会起任何作用。它将执行,然后执行BadRequest,并返回该调用的结果。为了快速简便地处理错误,您可以用Try()包装Ok,然后用getOrElse()替换异常时的BadRequest,或者如果您需要更高级的错误处理:,就像在普通Scala中一样,块末尾的语句是返回

在上面的方法中,调用
Ok()
后方法是否停止执行?

就像在普通Scala中一样,块末尾的语句是返回的语句,即在这种情况下返回
BadRequest
。除非由于某种原因
Ok
包含副作用(我怀疑它会有副作用),否则示例中的
Ok()
函数调用实际上不会起任何作用。它将执行,然后执行
BadRequest
,并返回该调用的结果。为了快速简便地处理错误,您可以用
Try()
包装
Ok
,然后用
getOrElse()
替换异常时的
BadRequest
,或者如果您需要更高级的错误处理:

,就像在普通Scala中一样,块末尾的语句是返回的语句,即在本例中,返回
BadRequest
。除非由于某种原因
Ok
包含副作用(我怀疑它会有副作用),否则示例中的
Ok()
函数调用实际上不会起任何作用。它将执行,然后执行
BadRequest
,并返回该调用的结果。为了快速简便地处理错误,您可以使用
Try()
包装
Ok
,然后用
getOrElse()
替换异常时的
BadRequest
,或者如果您需要更高级的错误处理,则使用
recover()
:另请参见6.11:

块表达式
{s1;…;sn;e}
由块语句序列
s1,…,sn
和最终表达式
e
构成

在您的例子中,最后一个表达式
e
BadRequest(“”

),另请参见6.11:

块表达式
{s1;…;sn;e}
由块语句序列
s1,…,sn
和最终表达式
e
构成


在您的例子中,最后一个表达式
e
BadRequest(“”

),编译器不在乎。它只需要您希望从方法返回的最后一个表达式的正确类型。我想你可以运行它并检查一下。您可能会得到一个警告,第一个表达式没有被使用……因此在Scala中,块的最后一个语句将是返回值。因此Ok只是一个将被跳过的值,BadRequest将是函数
(Request)=>Result的返回值,编译器不在乎。它只需要您希望从方法返回的最后一个表达式的正确类型。我想你可以运行它并检查一下。您可能会得到一个警告,第一个表达式没有被使用……因此在Scala中,块的最后一个语句将是返回值。因此Ok只是一个将被跳过的值,BadRequest将是函数
(Request)=>Result的返回值
@Singleton
class DeliveryPartnerController @Inject()(deliveryPartnerService: DeliveryPartnerService)
  extends Controller {
  def getDeliveryPartners() = Action { implicit request =>    
    Ok("")
    BadRequest("") // Is this code reachable?
  }
}