자바 오류 java.util.InputMismatchException

Muhammad Zeeshan 2023년10월12일
  1. Java의 java.util.InputMismatchException
  2. java.util.InputMismatchException 오류의 원인
  3. java.util.InputMismatchException 오류 수정
자바 오류 java.util.InputMismatchException

이 기사에서는 Java 프로그래밍 언어의 main 스레드에 있는 java.util.InputMismatchException에 대해 설명합니다.

Java의 java.util.InputMismatchException

JVM은 한 종류의 데이터를 입력으로 수신하지만 데이터의 불일치를 나타내는 다른 유형의 값을 예상할 때마다 java.util.InputMismatchException을 발생시킵니다. 이는 값이 정규식 패턴과 일치하지 않거나 허용 범위를 벗어남을 나타냅니다.

예를 들어 프로그램은 아래와 같이 짝수인지 홀수인지 확인하기 위해 입력으로 정수 값을 찾고 있습니다.

코드 예:

import java.util.Scanner;
public class example {
  public static void main(String[] args) {
    int n = 0;
    Scanner s = new Scanner(System.in);
    for (int i = 0; i < 10; i++) {
      System.out.println("Enter a number to check Even/Odd");
      n = s.nextInt();
      if (n % 2 == 0) {
        System.out.println(n + " = EVEN ");
      } else {
        System.out.println(n + " = ODD ");
      }
    }
  }
}

출력:

Enter a number to check Even/Odd
5
5 = ODD
Enter a number to check Even/Odd
6
6 = EVEN Enter a number to check Even/Odd
z
Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:864)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextInt(Scanner.java:2117)
    at java.util.Scanner.nextInt(Scanner.java:2076)
    at example.main(example.java:8)

java.util.InputMismatchException 오류의 원인

예제에서 java.util.InputMismatchException이 발생한 이유는 Scanner 클래스를 사용하여 사용자 입력을 받는 경우입니다. 메소드에 지정된 매개변수가 유효하지 않은 경우 InputMissMatchException이 발행됩니다.

nextInt() 함수에 제공된 값이 String 예외인 경우 예외가 발생합니다. nextInt() 함수는 문자열 값이 아닌 정수 값만 처리할 수 있습니다.

java.util.InputMismatchException 오류 수정

이 오류는 부정확한 데이터로 인해 발생하며 이를 복구하려면 데이터를 수정해야 합니다. 예제에서는 nextInt() 함수를 사용했습니다.

그러나 문자열 매개변수는 지원하지 않습니다. java.util.InputMismatchException을 해결하려면 입력 유효성 검사가 제대로 작동하고 적절한 데이터 유형 값을 제공하고 있는지 확인해야 합니다.

try catch 메서드를 사용하여 사용자 입력의 유효성을 검사합니다. 사용자가 정수 이외의 잘못된 값을 입력하면 프로그램은 다음 오류를 반환합니다.

오류 출력:

Input value is Invalid please provide an integer value:

완전한 소스 코드:

import java.util.Scanner;
public class example {
  public static void main(String[] args) {
    int n = 0;
    try {
      Scanner s = new Scanner(System.in);
      for (int i = 0; i < 10; i++) {
        System.out.println("Enter a number to check Even/Odd");
        n = s.nextInt();
        if (n % 2 == 0) {
          System.out.println(n + " = EVEN ");
        } else {
          System.out.println(n + " = ODD ");
        }
      }
    } catch (Exception exp) {
      System.out.println(" Input value is Invalid please provide an integer value: ");
    }
  }
}

출력:

Enter a number to check Even/Odd
6
6 = EVEN
Enter a number to check Even/Odd
z
Input value is Invalid please provide an integer value:
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

관련 문장 - Java Error