【发布时间】:2013-11-13 09:43:34
【问题描述】:
下面的代码出错了,我不知道是什么原因,以及如何消除这个错误,告诉我我做错了什么。
def members(id:String,name:String) = Action { implicit request =>
try{
session.get("userId").map{user=>
val Data =NewModel.getInfo(id)
val userId=session.get("userId").get
if(userId==Data.createdBy){
Ok(html.groupMembers(Data,"mainAdmin"))
}else{try{
val admin=NewModel.admin(id,userId);
Ok(html.members(Data,"subAdmin"))
}catch{
try{
val member=NewModel.member(id,userId)
Ok(html.members(Data,"member"));
}catch{
if(Data.privacy!="secret")
Ok(html.members(Data,"outsider"))
else
Ok(html.noPageFound())
}
}
}
}.getOrElse{
Redirect("/")
}
}catch{
case e=>
println(e)
Ok(html.onError())
}
}//end groupSetting
【问题讨论】:
-
那是编译器告诉你你在
catch块中使用了错误的语法。但是,为了大家,请不要使用异常来进行流量控制。 -
@millhouse val admin=NewModel.admin(id,userId);当它没有找到值时给出异常。我在后端使用 cassandra
-
@flavian 这是(控制器的)scala 代码。当他是管理员时,我想向 subAdmin 发送一个字符串,如果没有找到列值,cassandra 会给出空指针异常。所以我使用try catch。
-
这个问题似乎跑题了,因为它太简单了
标签: scala playframework try-catch scala-2.10 playframework-2.2