2012년 10월 22일 월요일

OCJP 문제풀이 - Question 26


QUESTION 26
Given a valid DateFormat object named df, and

Date d = new Date(0L);
String ds = "December 15, 2004";
//insert code here

What updates d's value with the date represented by ds?

A. 18. d = df.parse(ds);
B. 18. d = df.getDate(ds);
C. 18. try {
    19. d = df.parse(ds);
    20. } catch(ParseException e) { };
D. 18. try {
    19. d = df.getDate(ds);
    20. } catch(ParseException e) { };

Answer: C
Section: All

Explanation/Reference:

DateFormat.parse(String) 을 java api 에서 찾아보면 아래와 같이 나온다.


parse

public Date parse(String source)
           throws ParseException
Parses text from the beginning of the given string to produce a date. The method may not use the entire text of the given string.See the parse(String, ParsePosition) method for more information on date parsing.
Parameters:
source - A String whose beginning should be parsed.
Returns:
Date parsed from the string.
Throws:
ParseException - if the beginning of the specified string cannot be parsed.


api 의 설명을 보면 parse라는 메소드는 ParseException을 던질 가능성 있도록 설계되어있다. 그러므로 parse 메소드를 try ~ catch 문으로 감싸주지않으면 컴파일 오류가 발생하게 된다.

그러므로 정답은 C가 된다.

참고로, getDate(String) 함수는 DateFormat 클래스에 존재하지 않는다.(D는 오답)

블로그 보관함