我需要从java调用scala代码,所以我需要告诉编译器某个方法抛出某些异常。这是easy to do for one exception,但我很难声明方法会抛出多个异常。
这不起作用:
@throws( classOf[ ExceptionA ], classOf[ExceptionB] )
显然,这也不是:
@throws( classOf[ ExceptionA , ExceptionB] )
答案 0 :(得分:10)
在查看@throws
的构造函数时,它需要一个Class[_]
参数。考虑到这一点,您将无法使用数组表示法来表示多个类。因此可以选择多次添加注释,每个支持的例外一个:
@throws( classOf[ExceptionA] )
@throws( classOf[ExceptionB] )
答案 1 :(得分:4)
@throws
定义如下:
class throws[T <: Throwable](cause: String = "") extends scala.annotation.StaticAnnotation {...}
因此,每个注释只能放一个例外。每个例外添加一个注释。