문제

I need to call scala code from java, so I need to tell the compiler that a certain method throws certain exceptions. This is easy to do for one exception, but I'm struggling to declare that a method throws multiple exceptions.

This doesn't work:

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

And, obviously, neither does this:

@throws( classOf[ ExceptionA , ExceptionB] )
도움이 되었습니까?

해결책

In looking at the constructor for @throws, it takes a single Class[_] argument. Taking that into consideration, you won't be able to use the array notation to represent multiple classes. So the alternative it to add the annotation multiple times, one for each supported exception:

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

다른 팁

@throws is defined as follow:

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

So you can only put one exception per annotation. Add one annotation per exception.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top