我们不需要Java程序中main方法的异常规范。例如,以下代码完全相同,而没有为main方法指定“throws Xcept”。
class Xcept extends Exception {
public Xcept(){
}
public Xcept(String msg){
super(msg);
}
}
public class MyException {
public void f() throws Xcept {
System.out.println("Exception from f()");
throw new Xcept("Simple Exception");
}
public static void main(String[] args) throws Xcept {
MyException sed = new MyException();
try {
sed.f();
} catch(Xcept e) {
e.printStackTrace();
}
finally {
System.out.println("Reached here");
}
}
}
我读到java强制执行此操作,但如果我为main方法排除此规范,则不会出现编译时错误。
答案 0 :(得分:3)
这是因为Xcept
永远不会被main
方法抛出,因为你实际上catch
那里...... sed.f()
调用可能会导致Xcept
1}}被抛出,但它被抓住并处理。