HOWTO · Java

Java의 잘못된 입력 예외

이 자습서는 Java에서 잘못된 입력 예외를 만드는 방법을 보여줍니다.

이 페이지의 내용

Java는 잘못된 입력이라는 이름의 예외를 제공하지 않지만 일부 IO 예외 및 런타임 예외를 사용하여 잘못된 입력을 처리할 수 있습니다. 상황에 따라 IO 예외에서 하나를 얻거나 유효하지 않은 입력에 대해 사용자 정의 예외를 만들 수 있습니다.

이 자습서는 Java에서 잘못된 입력에 대한 예외를 사용하는 방법을 보여줍니다.

Java에서 입력 인수가 유효하지 않은 경우

메서드로 작업할 때 잘못된 입력 인수를 입력하면 IllegalArgumentException이 발생하는 경우가 있습니다. 아래 예제는 Java의 IllegalArgumentException을 보여줍니다.

package delftstack;

public class Invalid_Argument {
  public static void main(String[] args) {
    Thread Demo_Thread = new Thread(new Runnable() {
      public void run() {
        try {
          Thread.sleep(-100);
        } catch (InterruptedException e) {
          e.printStackTrace();
        }
        System.out.println("Hello! This is delftstack.com");
      }
    });

    Demo_Thread.setName("Delftstack Thread");
    Demo_Thread.start();
  }
}

위의 코드는 Thread.sleep()에 대한 입력이 유효하지 않기 때문에 IllegalArgumentException을 발생시킵니다. 출력 참조:

Exception in thread "Delftstack Thread" java.lang.IllegalArgumentException: timeout value is negative
	at java.base/java.lang.Thread.sleep(Native Method)
	at delftstack.Invalid_Argument$1.run(Invalid_Argument.java:10)
	at java.base/java.lang.Thread.run(Thread.java:833)

Java에서 입력이 Null인 경우

개체에 null 값이 할당되거나 null 입력을 조작하려고 하면 NullPointerException이 발생합니다. 잘못된 입력 예외로 사용할 수도 있습니다.

예를 참조하십시오:

package delftstack;

import java.io.*;

public class Null_Invalid {
  public static void main(String[] args) {
    String Demo = null;
    try {
      if (Demo.equals("delftstack"))
        System.out.print("The Strings are equal");
      else
        System.out.print("The Strings are not equal");
    } catch (NullPointerException e) {
      System.out.print("The String is null");
      e.printStackTrace();
    }
  }
}

위의 코드는 null 문자열을 사용하는 것이 유효하지 않을 수 있음을 보여줍니다. 이 코드는 null 문자열이 다른 문자열과 비교되기 때문에 NullPointerException을 발생시킵니다.

예를 참조하십시오:

The String is null
java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "Demo" is null
	at delftstack.Null_Invalid.main(Null_Invalid.java:9)

Java의 잘못된 입력에 대한 사용자 정의 예외

사용자가 ID를 입력하면 예외를 만들어 봅시다. 데이터베이스에 없으면 잘못된 ID 예외가 발생합니다.

예를 참조하십시오:

package delftstack;

import java.util.*;

class InValid_ID extends Exception {
  public InValid_ID(String ID) {
    super(ID);
  }
}
public class Invalid_Input {
  // Method to find ID
  static void find_ID(int input_array[], int ID) throws InValid_ID {
    boolean condition = false;
    for (int i = 0; i < input_array.length; i++) {
      if (ID == input_array[i]) {
        condition = true;
      }
    }
    if (!condition) {
      throw new InValid_ID("The ID is you Entered is InValid!");
    } else {
      System.out.println("The ID is you Entered is Valid!");
    }
  }
  public static void main(String[] args) {
    Scanner new_id = new Scanner(System.in);
    System.out.print("Enter the ID number: ");
    int ID = new_id.nextInt();
    try {
      int Input_Array[] = new int[] {123, 124, 134, 135, 145, 146};
      find_ID(Input_Array, ID);
    } catch (InValid_ID e) {
      System.out.println(e);
      e.printStackTrace();
    }
  }
}

이 코드는 입력 ID가 유효하지 않을 때 발생하는 예외를 생성합니다. 이는 데이터베이스에 존재하지 않음을 의미합니다. 마찬가지로 조건에 따라 예외를 만들 수 있습니다.

출력:

Enter the ID number: 122
delftstack.InValid_ID: The ID is you Entered is InValid!
delftstack.InValid_ID: The ID is you Entered is InValid!
	at delftstack.Invalid_Input.find_ID(Invalid_Input.java:20)
	at delftstack.Invalid_Input.main(Invalid_Input.java:33)