Do we not need exception specification for the main method in a Java program. For example, the following code works exactly the same without specifying “throws Xcept” for the main method.
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");
}
}
}
I read that java enforces this, but I don’t get a compile time error if I exclude this specification for the main method.
That’s because
Xceptwill never be thrown out of yourmainmethod, as you actuallycatchit there… Thesed.f()call may result in anXceptbeing thrown, but it’s caught and handled.