我试图表明方法可以抛出异常。我使用throws注释,但编译器向我显示警告:
[warn] /root/playit/app/entities/game/GameRepository.scala:67: Tag '@throws(classOf[DatabaseException])' is not recognised
[warn] /**
[warn] ^
代码如下:
/**
* @throws(classOf[DatabaseException])
*/
def insert(game: Game): Long = {
...
}
我不知道自己做错了什么。 IDE说"缺少标记参数"。我正在使用Play 2.4和IntelliJ IDE。
答案 0 :(得分:3)
您将Scala @throws
注释与Scaladoc @throws
标记混淆。
注释直接在方法上进行,实际上编译为字节码(如Java中的throws
关键字),Scaladoc转换为文档(例如,在哪种情况下抛出异常)。
/**
* @throws DatabaseException Banana banana.
*/
@throws(classOf[DatabaseException])
def insert(game: Game): Long = {
...
}
已编辑添加:
这种语法结合了两种语言,看起来比我更好:
@throws[DatabaseException]("Banana banana.")
def insert(game: Game): Long = {
...
}