새소식

반응형
Language/Java

[Java] 자바 예외 NumberFormatException 처리방법 알아보기

  • -
반응형

2021-01-09


오늘은 int형 변수와 String 변수를 같이 다루다 보면 자주 접할 수 있음 NumberFormatException에 대하여 알아보도록 하자. 우선 어떠한 상황에서 해당 예외가 발생하게 되는지부터 보도록 하자.


package eException;

public class main {

	public static void main(String[] args){
		String str = "100";
		String str1 = "100 ";
		
		int a = Integer.parseInt(str);
		int b = Integer.parseInt(str1);
		//공백이 포함되어 있어 예외 발생
		//NumberFormatException
	}

}

str 변수의 경우 공백없이 100이라는 문자열 데이터가 들어 있고 str1의 경우 100 뒤에 하나의 공백이 있는 것을 확인할 수 있다. 때문에 이와 같은 두 가지 변수를 int 형으로 변환할 경우 a는 정상적으로 int형으로 변환이 되지만, str1의 경우 공백이 포함되어 있어 숫자형 변수의 포맷에서 벗어나게 되어 아래와 같은 예외가 발생하게 된다.


해당 예외를 처리하기 위해 try / catch문을 사용해주면 간단히 처리할 수 있다. 코드는 아래와 같다.

package eException;

public class main {

	public static void main(String[] args){
 		try {
			String str = "100";
			String str1 = "100 ";
			
			int a = Integer.parseInt(str);
			int b = Integer.parseInt(str1);
		}catch (NumberFormatException e) {
			System.out.println("--NumberFormatException 발생--");
			System.out.println("기존 코드를 체크해 주세요!!");
		}finally {
			System.out.println("예외처리 코드가 오류없이 진행되었습니다.");
		}
	}

}

예외가 발생할 가능성이 있는 코드를 우선 try { . . .} 로 담아준다. 이후 메서드 catch를 이용해 매개변수(파라미터) 값으로 예상되는 예외와 그 예외 변수(보통 e로 선언함)를 넣어주고 중괄호에 발생 시 실행될 코드를 작성해 주면 된다.

(finally은 옵션으로 생략해도 무방하다. -> 코드가 예외가 발생여부를 떠나 반드시 실행되는 메서드이다.) 이후 실행하면 아래와 같이 예외가 처리되는 것을 확인할 수 있다.

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.