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)