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

정답)
1
3
5
1
2
5
6
풀이)
일단 1은 무조건 출력이 된다.
b가 true이면 ArithmeticException을 발생시키는데 ArithmeticException은 RuntimeException의 자손이므로 3이 출력된다.
이 때 return문을 만나도 finally 블록은 수행한 후에 return문이 실행된다.
따라서 5도 출력이 된다.
예외가 발생하면 catch블럭을 수행한 후 메인메소드가 종료가 되기 때문에 6은 출력되지 않는다. 따라서 첫 번째 method는 135를 출력한다.
b가 false라서 예외가 발생하지 않는 경우엔 2가 출력이 되고 finally 블록도 수행되어 5가 출력된다.
그리고 마지막 6도 출력이 되어 두 번째 method는 1256를 출력한다.

정답)
3
5
풀이)
method1이 method2를 호출-> NullPointerException 발생시킴 -> method2에 에러 처리해줄 try-catch블럭이 없으므로 method1로 돌아옴-> method1에도 NullPointerException을 처리할 catch블럭이 없으므로 finally 블록만 실행하고 메인메소드로 돌아옴->메인메소드에서 Exception이 선언된 catch블럭을 만나 예외가 처리되고 5가 출력됨
[출처] 자바의 정석 3판 연습문제 Chapter 8
'Java > Java의 정석 연습문제 오답노트' 카테고리의 다른 글
220412 Java - Chapter 11 연습문제 (0) | 2022.04.12 |
---|---|
220411 Java - Chapter 9 연습문제 (0) | 2022.04.12 |
220326 Java - Chapter 7 연습문제 (0) | 2022.03.26 |
220323 Java - Chapter 6 연습문제 (0) | 2022.03.23 |
220319 Java - Chapter 5 연습문제 (0) | 2022.03.19 |