☕ 기본 환경: IDE: Eclipse, Language: Java
발생 Exception
Java에서 다음 Source Code를 실행할 경우,
import java.util.*;
import java.text.*;
public class Today {
public static void main(String[] args) {
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMddHHmmss"); // java.text
Date birth = sdf2.parse("20230213184030"); // java.util, String -> Date 형변환
System.out.println("Birth: " + sdf2.format(birth));
}
}
⭐ java.lang.Error: Unresolved compilation problem:
→ Unhandled exception type ParseException 발생
Exception 원인
문자열을 기반으로 객체를 만드는데 파싱*에서 에러가 발생할 경우, ParseException이 발생
*파싱(Parsing): 구문 분석, 주어진 정보를 내가 원하는 형태로 가공하는 것
Source Code상의 문제는 없으나, Compile Error가 발생할 수 있기때문에 Exception에 대한 처리 필요
해결 방법
1. Add throws declaration
import java.util.*;
import java.text.*;
public class Today {
public static void main(String[] args) throws ParseException {
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMddHHmmss"); // java.text
Date birth = sdf2.parse("20230213184030"); // java.util, String -> Date 형변환
System.out.println("Birth: " + sdf2.format(birth));
}
}
2. Surround with try/catch
import java.util.*;
import java.text.*;
public class Today {
public static void main(String[] args) {
Date date = new Date();
System.out.println("오늘 날짜: " + date);
SimpleDateFormat sdf = new SimpleDateFormat("y년 MM월 dd일 E요일 HH:mm:ss");
System.out.println("오늘 날짜: " + sdf.format(date));
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyyMMddHHmmss"); // java.text
Date birth=null;
try {
birth = sdf2.parse("20230213184030");
} catch (ParseException e) {
e.printStackTrace();
} // java.util, String -> Date 형변환
System.out.println("Birth: " + sdf2.format(birth));
}
}
참고 자료
'Java > Java with Error' 카테고리의 다른 글
[해결 방법] java.util.ConcurrentModificationException (0) | 2023.02.16 |
---|---|
[해결 방법] java.lang.Error (0) | 2023.02.16 |
[해결 방법] Resource leak: '...' is never closed (0) | 2023.02.12 |
[해결 방법] java.lang.Error (0) | 2023.02.12 |
[해결 방법] java.lang.Error (0) | 2023.02.11 |