I about me

[Final] Exception Handling 문제 풀이 본문

Java

[Final] Exception Handling 문제 풀이

ssungni 2024. 6. 11. 17:48

8 - 1) 예외 처리의 정의와 목적에 대해서 설명하시오.

정의

Writing code to handle potential exceptions that may occur during program execution.

( 프로그램 실행 시발생할 수있는 예외의 발생에 대비한 코드를 작성하는 것)

목적

Preventing abnormal termination of the program and maintaining normal execution state.

(프로그램의 비정상 종료를 막고 정상적인 실행상태를 유지하는 것)

 

+ exception의 정의

Slight errors that can be recovered from by the program code.

(프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류)

 

+ error의 정의

Serious errors that cannot be recovered from by the program code.

(프로그램 코드에 의해서 수습될 수 없는 심각한 오류)


8 - 2) 다음은 실행 도중 예외가 발생하여 화면에 출력된 내용이다. 이에 대한 설명 중 옳지 않은 것은?

 java.lang.ArithmeticException:/byzero
     at ExceptionEx18.method2(ExceptionEx18.java:12)
     at ExceptionEx18.method1(ExceptionEx18.java:8)
     at ExceptionEx18.main(ExceptionEx18.java:4)

 

c. 발생한 예외는 ArithmeticException 이며, 0으로 나누어서 예외가 발생했다. (O)

b. 예외가 발생한 위치는 메서드2이며, ExceptionEx18.java 파일의 12번째 줄이다. (O)

a. 위의 내용으로 예외가 발생했을 당시 호출 스택에 존재했던 메서드를 알 수 있다. (O)

    그래서. main → method1 → method2의 순서로 호출되었음을 알 수 있다.

d. method2가 method1를 호출했고, 그 위치는 ExceptionEx18.java 8번째줄이다. (X)


8 - 3) 다음 중 오버라이딩이 잘못된 것은? (모두 고르시오)

 void add(int a,int b)
 	throws InvalidNumberException, NotANumberException{}
 class NumberException extends Exception{}
 class InvalidNumberException extends NumberException{}
 class NotANumberException extends NumberException{}
Exception
NumberException
InvaildNumberException   NotANumberException

 

오버라이딩을 할 때, 조상 클래스의 메서드보다 많은 수의 예외를 선언할 수 없다.

만일 위와 같이 오버라이딩을 하였다면 분명히 조상클래스에 정의된 메서드보다 적은 개수의 예외를 선언한 것처럼 보이지만은 모든 예외의 최고 조상이므로 가장 많은 개수의 예외를 던질 수 있도록 선언한것이다. 그래서 예외의 개수는 적거나 같아야 한다는 조건을 만족시키지 못하는 잘못된 오버라이딩인것이다.


8 - 4)  다음과 같은 메서드가 있을 때 예외를 잘못 처리한 것은? (모두 고르시오)

 

Exception과 같은 최고 조상을 처리하는 블럭은 모든 블럭 중 제일 마지막에 있어야 한다는 것이다.

Exception
RumtimeException
NumberException
InvaildNumberException   NotANumberException




 try{
    input = new Scanner(System.in).nextInt();
 }catch(Exception e){
	System.out.println("유효하지 않은 값입니다." + "다시 값을 입력해주세요");
 	continue;
 }

'Java' 카테고리의 다른 글

[Final] Serialization  (1) 2024.06.14
[Final] File I/O  (0) 2024.06.13
[Final] Exception  (0) 2024.06.11
[Final] Interface  (0) 2024.06.10
[Final] Abstract Classes  (0) 2024.05.07