调用Groovy代码时,检查Java中的异常?

时间:2016-02-27 13:27:18

标签: java intellij-idea groovy

当我有一个Groovy类时(在groovy文件夹中,以.groovy结尾):

...
DerbyNow() throws IOException {
    // create socket connection
    socket = new EventSocket(new Socket(DERBY_NOW_HOST, DERBY_NOW_PORT)) // EventSocket throws IOException as well
    ...

并从Java代码创建它(在java文件夹中,以.java结尾):

try {
    DerbyNow derbyNow = new DerbyNow();

    setDerbyNow(derbyNow);
} catch (IOException e) {
    Log.bad("error while setting up Derby Now: ", e);
}

IntelliJ IDEA没有给我一个错误/警告(正确),但是当我去编译/运行时,它在Messages Make视图中给出了一个错误(不正确):

Error:(382, 19) java: exception java.io.IOException is never thrown in body of corresponding try statement

如何获取它以便编译器识别此异常?我查看了反编译的groovy类(反编译为Java),它仍然抛出IOException

这是Gradle文件的一部分:

apply plugin: 'java'
apply plugin: 'groovy'

...

repositories {
    mavenCentral()
    mavenLocal()
    ...
}

...

dependencies {
    compile 'org.codehaus.groovy:groovy-all:2.3.11'
    ...
}

我正在使用javac编译器(默认)。

1 个答案:

答案 0 :(得分:1)

我希望我能从Groovy专家那里得到一个明确的答案。 我有一个类似的问题,并以一种非常丑陋的方式解决它:

FeedCat

这样可行,因为自Java7以来, Exception 有一些特殊的宽恕。