는 다음 코드를 실행하고 있습니다 :이 프로그램은 성공적으로 컴파일하고 출력한다체크 예외를 사용하여 체크되지 않은 예외를 throw 할 수 있습니까?
import java.io.FileNotFoundException;
import java.io.IOException;
class Basic1 {
int c;
void calculation(int a, int b) throws Exception {
c = a/b;
}
}
class Basic extends Basic1 {
void calculation(int a, int b) throws IOException {
c = a/b;
RuntimeException ae = new ArithmeticException();
throw ae;
}
public static void main(String[] args) {
int a = 10;
int b = 0;
int c;
Basic ba = new Basic();
try {
ba.calculation(a, b);
} catch (IOException e) {
System.out.println("Zero can't be there in the denominator. : IoException");
} catch (ArithmeticException e) {
System.out.println("Zero can't be there in the denominator. : Arthimetic Exception");
} catch (Exception e) {
System.out.println("Zero can't be there in the denominator. : Exception");
}
}
}
"제로는 분모에있을 수 없습니다. Arthimetic 예외"(예상대로 출력됩니다).
제 질문은 프로그램을 어떻게 성공적으로 컴파일 할 수 있습니까? 내부에있는 동안 IOException
을 던지면 오류가 발생하지 않습니다. calculation()
RuntimeException
개체를 생성하고 있습니까?
두 번째 질문은 프로그램이 catch (ArithmeticException e)
절을 입력한다는 것입니다. 컴파일러는 실행시에 catch
을 실행할 것을 결정합니까? 나는 정확하게 이해합니까?
throws 절에서 RuntimeException을 선언 할 필요가 없습니다. – tsolakp
"RunTimeException 클래스의 객체를 생성하는 동안 IoException을 던지고있는 중 오류가 발생하지 않는 이유는 무엇입니까?"이 문장의 의미는 무엇입니까? –