当我有一个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
编译器(默认)。
答案 0 :(得分:1)
我希望我能从Groovy专家那里得到一个明确的答案。 我有一个类似的问题,并以一种非常丑陋的方式解决它:
FeedCat
这样可行,因为自Java7以来, Exception 有一些特殊的宽恕。