Question 4 : 예외처리

Given:
31. // some code here
32. try {
33.      // some code here
34. } catch (SomeException se) {
35.      // some code here
36. } finally {
37.      // some code here
38. }

Under which three circumstances will the code on line 37 be executed? (Choose three.)

A. The instance gets garbage collected.
B. The code on line 33 throws an exception.
C. The code on line 35 throws an exception.
D. The code on line 31 throws an exception.
E. The code on line 33 executes successfully.

[Head First Java - p.355]
# try/catch 블록은 호출할 메소드에서 예외와 관련된 일이 일어날 수 있다는 것을 알고 있음을, 그리고 그런 예외를 처리할 준비가 되어있음을 컴파일러에게 알려주는 역할을 합니다. 컴파일러에서는 프로그래머가 그 예외를 처리하는 구체적인 방법에 대해서는 신경쓰지 않습니다. 그냥 그런 예외를 처리할 것이라는 것만 밝혀주면 불평을 늘어놓지 않습니다.
# try {
      some code...
   } catch (xxException ex) {
      some code...
   } fially {
      some code...
   }
# try 블록이 실패하면, 즉 예외가 발생하면 흐름 제어가 바로 catch 블록으로 넘어갑니다. catch 블록이 종료되면 finally 블록이 실행된다. finally 블록이 종료되면 그 메소드의 나머지 부분이 실행됩니다.
# try 블록이 성공하면, 즉 예외가 발생하지 않으면 catch 블록은 건너뛰고 finally 블록으로 넘어갑니다. finally 블록이 종료되면 그 메소드의 나머지 부분이 실행됩니다.


Answer: BCE
반응형

'잘난놈되기 > SCJP' 카테고리의 다른 글

Q006. Format 클래스  (0) 2008.03.24
Q005. 클래스의 형변환  (0) 2008.03.23
Q003. 실행문  (0) 2008.03.23
Q002. 실행문  (0) 2008.03.23
Q001. 인터페이스의 상수선언  (0) 2008.03.23

+ Recent posts