Java での無効な入力例外

Sheeraz Gul 2023年10月12日
  1. Javaで入力引数が無効な場合
  2. Javaで入力がnullの場合
  3. Java での無効な入力に対するユーザー定義の例外
Java での無効な入力例外

Java は Invalid Input という名前の例外を提供しませんが、一部の 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 Gul
Sheeraz Gul avatar Sheeraz Gul avatar

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

関連記事 - Java Exception