为什么下面的代码编译正常,但被调用的方法不需要抛出Exception
?是不是Exception
检查异常,而不是未经检查的异常?请澄清。异常不需要被抛出,但IOException异常
class App {
public static void main(String[] args) {
try {
amethod();
System.out.println("try ");
} catch (Exception e) {
System.out.print("catch ");
} finally {
System.out.print("finally ");
}
System.out.print("out ");
}
public static void amethod() { }
}
如果我想使用一个IOexception
尝试捕捉(checked exception)时,该方法被调用需要扔IOException
。我明白了。
import java.io.IOException;
class App {
public static void main(String[] args) {
try {
amethod();
System.out.println("try ");
} catch (IOException e) {
System.out.print("catch ");
} finally {
System.out.print("finally ");
}
System.out.print("out ");
}
public static void amethod() throws IOException { }
}
我认为你的理解是倒退的。 'throws'声明的目的是列出被调用者抛出的选中的异常,而不是被调用者捕获的异常。 –