2

我们不需要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 方法排除此规范,则不会出现编译时错误。

4

1 回答 1

3

那是因为Xcept永远不会被抛出你的main方法,因为你实际上catch在那里......sed.f()调用可能会导致Xcept被抛出,但它会被捕获和处理。

于 2012-12-08T01:54:47.970 回答