본문 바로가기
Java/Java with Error

[해결 방법] java.lang.Error

by HJ0216 2023. 2. 13.

 기본 환경: 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));
	}
	
}

 

 

 

참고 자료

📑 Live Study 9주차 - 예외 처리

📑 [JAVA] Parsing이란 무엇인가?