Java 7 - 精确重放,最后一个例外
在以前版本的 java 中,重新引发异常被视为引发 catch 参数的类型。
例如:
public static void test() throws Exception{
DateFormat df = new SimpleDateFormat("yyyyMMdd");
try {
df.parse("x20110731");
new FileReader("file.txt").read();
} catch (Exception e) {
System.out.println("Caught exception: " + e.getMessage());
throw e;
}
}
在 Java 7 中,如果您声明异常,则可以更精确地了解所引发的异常:final
//(doesn't compile in Java<7)
public static void test2() throws ParseException, IOException{
DateFormat df = new SimpleDateFormat("yyyyMMdd");
try {
df.parse("x20110731");
new FileReader("file.txt").read();
} catch (final Exception e) {
System.out.println("Caught exception: " + e.getMessage());
throw e;
}
}
我的问题:文档说我需要声明例外。但是如果我不这样做,上面的代码仍然可以编译和工作。我错过了什么吗?final
引用: