2012-12-08 2 views
2

Java 프로그램에서 main 메소드에 대한 예외 스펙은 필요하지 않습니까? 예를 들어, 다음 코드는 main 메소드에 "throws Xcept"를 지정하지 않고 똑같이 작동합니다.기본 메소드에 대한 Java 예외 스펙

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"); 
     } 
    } 
} 

나는이 방법을 강요하지만이 메소드를 기본 메소드에 대해 제외하면 컴파일 시간 오류가 발생하지 않는다고 읽습니다.

답변

3

Xceptmain 방법에서 발생하지 않을 것이기 때문에 당신이 실제로 catch 거기 ... sed.f() 호출이 Xcept가 슬로우 될 수 있으므로,하지만 그것을 잡아서 처리하는 것 그.

+0

감사합니다. 나는 "던짐"을 정확하게 이해하지 못했을 것입니다. 이것은 도움이됩니다. –

관련 문제