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)
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook