method1
이 예외를 throw하는 예외 체인이 method2
인 경우 예외가 main
이됩니다. 어떤 이유에서 컴파일러는 method2
의 오류를 처리하도록 강요하며, 그렇지 않으면 오류로 표시하여 검사 된 예외임을 나타냅니다. 그러나 동일한 Exception
이 main
의 행 아래로 던져지면 컴파일러는이를 무시하고 오류를 표시하지 않습니다.여러 번 던진 예외가 확인되었거나 런타임에 있습니까?
method1
의 원래 예외는 확인 된 ParseException
입니다. 그러나이 메소드에는 헤더에 일반 throws Exception
절이 있으며 동일한 객체가 method2에 던져지며 동일한 throws Exception
절이 있습니다. 이 Exception은 컴파일러에 의해 체크/캐치되는 상태를 언제, 어떻게 상실합니까?
편집은 명확하게 :
편집public void method1() throws Exception{
// code that may generate ParseException
}
public void method2() throws Exception{
method1(); //compiler error (if the throws clause is left out)
}
public static void main(String[] args){
method2(); //ignored by compiler, even though the exception isn't caught or thrown or handled at all
}
: 죄송합니다 모두, 문제는 실수에 기반 ... 주요 방법은 실제로 내가 실종 된 throws Exception
절을했다. 코드를 제거 했으므로 코드가 예상대로 작동합니다. 모든 도움에 감사드립니다!
설명해 주시겠습니까? method1은 method2와 main에 의해 'Exception'으로 취급되는 'ParseException'을 던집니까? 일부 메소드 서명과 try-catch-throw 코드 스 니펫이 도움이됩니다. – justkt
코드는 10,000 단어의 가치가 있습니다. –
은 맞춤 클래스 인 ParseException입니까? 그렇다면 예제 코드에도이를 추가 할 수 있습니까? –