Scala @throws多个例外

时间:2013-12-12 13:21:05

标签: scala exception scala-2.8 scala-java-interop

我需要从java调用scala代码,所以我需要告诉编译器某个方法抛出某些异常。这是easy to do for one exception,但我很难声明方法会抛出多个异常。

这不起作用:

@throws( classOf[ ExceptionA ], classOf[ExceptionB] )

显然,这也不是:

@throws( classOf[ ExceptionA , ExceptionB] )

2 个答案:

答案 0 :(得分:10)

在查看@throws的构造函数时,它需要一个Class[_]参数。考虑到这一点,您将无法使用数组表示法来表示多个类。因此可以选择多次添加注释,每个支持的例外一个:

@throws( classOf[ExceptionA] )
@throws( classOf[ExceptionB] )

答案 1 :(得分:4)

@throws定义如下:

class throws[T <: Throwable](cause: String = "") extends scala.annotation.StaticAnnotation {...}

因此,每个注释只能放一个例外。每个例外添加一个注释。