在Java中捕获Scala抛出的异常 – 无法访问的catch块

Scala doesn’t have检查了异常.但是,从java调用scala代码时,最好捕获scala抛出的异常.

斯卡拉:

def f()=
    {
    //do something that throws SomeException
    }

Java的:

try
    { f() }
catch (SomeException e)
    {}

javac不喜欢这个,并抱怨“这个异常永远不会从try语句体中抛出”

有没有办法让scala声明它抛出一个已检查的异常?

最佳答案
使用抛出注释:

@throws(classOf[SomeException])
def f()= {
    //do something that throws SomeException
    }

你也可以annotate a class constructor

class MyClass @throws(classOf[SomeException]) (arg1: Int) {
}

这是covered in the Tour of Scala

转载注明原文:在Java中捕获Scala抛出的异常 – 无法访问的catch块 - 代码日志