【问题标题】:Scala @throws multiple exceptionsScala @throws 多个异常
【发布时间】:2013-12-30 22:26:33
【问题描述】:

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

这不起作用:

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

而且,显然,这也不是:

@throws( classOf[ ExceptionA , ExceptionB] )

【问题讨论】:

  • 您是否尝试过添加多个 @throws 注释?让我知道这是否有效,我会添加作为答案
  • @cmbaxter 当我看到你的评论时,我刚刚尝试过,它有效。请将其添加为答案,我会接受

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


【解决方案1】:

@throws定义如下:

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

因此,每个注释只能放置一个异常。为每个异常添加一个注释。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-25
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-09
      相关资源
      最近更新 更多