본문 바로가기
JAVA

입력형식오류, InputMismatchException (in java)

by helloissue 2021. 11. 29.

자바 스캐너를 활용하여, 프로그램을 코딩하던 중에 만나는 InputMismatchException에 대해 알아보겠습니다. 간단하게는 정수를 입력하게 되어있으나, 정수의 내용이 아닌 문자형태가 오면서 발생하는 오류입니다.

InputMismatchException
InputMismatchException

1. 언제 발생하나요?


스캐너 사용 시 입력된 값이 예상 유형의 형식과 일치하지 않거나, 값의 범위를 벗어났을 경우, 스캐너에서  범위를 초과하였음을 알리기 위해 예외를 던집니다.

 

 

2. 어떻게 해결하나요?

Scanner scan = null;
int i숫자 = 0;
		
while(true) { scan = new Scanner( System.in );

  try {  
         System.out.print("숫자 입력하셔 ? "); 
         i숫자 = scan.nextInt(); break;
  }catch (Exception e) {
     e.printStackTrace();
  }
}
		
System.out.println("숫자= "+i숫자);
scan.close();

간단합니다. 계속 입력받게 만들면 됩니다.

  • 계속 입력받게 하기 위해서 while 절을 사용하였고,
  • 예외상황을 잡기 위해 try catch문을 사용했습니다.

범위를 초과하거나 특이한 예외가 발생하면 다시 묻습니다. 올바른 형식과 유효한 범위의 값을 입력받으니 출력을 합니다. 우리가 원하던 바를 이뤄냈습니다. while절 안에 스캐너를 새로 초기화하는 것도 또 다른 핵심입니다. 초기화 없이 진행을 한다면 엔터 값으로 고생할 겁니다.

 

 

마치면서.. 도움이 되셨다면 좋아요 부탁드립니다. 

댓글