在Java中,您可以编写类似
的类public class Test {
public static void main(String[] args) throws IOException {
System.out.println("Hello World!");
}
}
在这里,我们有一个main
方法声明它正在抛出一个IOException
(已经过检查),即使显然不可能发生这种情况。
据我所知,编译器很容易告诉方法可以抛出哪些检查异常。因此,应该很容易抛出编译器错误,说'此方法不能抛出IOException'。
是否存在一些极端情况我没有考虑在没有编译器意识到的情况下抛出已检查异常的位置?或者是否还有其他一些理由为什么必须允许方法声明它们永远无法抛出的抛出?