Intellij IDEA Java 7多捕获,带rethrow异常
下面的方法是使用JDK 7在Eclipse上编译的,没有任何编译错误;奇怪的是,INELIJ IDEA 14上使用相同JDK 7的相同方法会产生编译错误,但它会运行! 这是因为我的想法配置不好吗? 谢谢:)Intellij IDEA Java 7多捕获,带rethrow异常,java,eclipse,exception,intellij-idea,rethrow,Java,Eclipse,Exception,Intellij Idea,Rethrow,下面的方法是使用JDK 7在Eclipse上编译的,没有任何编译错误;奇怪的是,INELIJ IDEA 14上使用相同JDK 7的相同方法会产生编译错误,但它会运行! 这是因为我的想法配置不好吗? 谢谢:) 该方法不会抛出FileNotFoundException或SQLException,而是抛出Exception,实际上这甚至不应该编译。您尚未将异常指定为可能的异常。顺便说一句,这个代码段没有实现multicatch。如果您从throw(ex)中删除(),并且实际使用Java 7编译(语言级
该方法不会抛出
FileNotFoundException
或SQLException
,而是抛出Exception
,实际上这甚至不应该编译。您尚未将异常
指定为可能的异常。顺便说一句,这个代码段没有实现multicatch。如果您从throw(ex)
中删除()
,并且实际使用Java 7编译(语言级别7),multicatch在catch块中带有|
操作符。如果使用JDK 6,则使用这种方式重新刷新将产生异常。但在JDK 7中,有一个新功能允许您将(FileNotFoundException | SQLException e)替换为(Exception e),并且编译器足够聪明,可以理解这里的“Exception”只是替换了“FileNotFoundException | SQLException e”,这就是我在这个方法中尝试测试的内容。您可以尝试直接使用javac(jdk7)编译此代码,它将编译并运行,不会出现任何问题。
static void testException() throws FileNotFoundException, SQLException {
boolean zx = false;
try {
if (zx) {
throw new FileNotFoundException("1");
}
else {
throw new SQLException("2");
}
}
catch (Exception ex) {
throw (ex);
}
}