[출처] 자바의 정석 3판 연습문제 Chapter 8

 

정답)

1

3

5

1

2

5

6

 

풀이)

일단 1은 무조건 출력이 된다.

btrue이면 ArithmeticException을 발생시키는데 ArithmeticExceptionRuntimeException의 자손이므로 3이 출력된다.

이 때 return문을 만나도 finally 블록은 수행한 후에 return문이 실행된다.

따라서 5도 출력이 된다.

예외가 발생하면 catch블럭을 수행한 후 메인메소드가 종료가 되기 때문에 6은 출력되지 않는다. 따라서 첫 번째 method135를 출력한다.

bfalse라서 예외가 발생하지 않는 경우엔 2가 출력이 되고 finally 블록도 수행되어 5가 출력된다.

그리고 마지막 6도 출력이 되어 두 번째 method1256를 출력한다.

 

 

정답)

3

5

 

풀이)

method1method2를 호출-> NullPointerException 발생시킴 -> method2에 에러 처리해줄 try-catch블럭이 없으므로 method1로 돌아옴-> method1에도 NullPointerException을 처리할 catch블럭이 없으므로 finally 블록만 실행하고 메인메소드로 돌아옴->메인메소드에서 Exception이 선언된 catch블럭을 만나 예외가 처리되고 5가 출력됨


[출처] 자바의 정석 3판 연습문제 Chapter 8

+ Recent posts