【Java】IllegalArgumentExceptionとは?原因と解決方法

この記事ではJavaの ・IllegalArgumentExceptionの原因 ・IllegalArgumentExceptionの解決法 について解説しています。

目次

JavaのIllegalArgumentExceptionとは?

IllegalArgumentExceptionは、メソッドに渡された引数が不正である場合にスローされる例外です。この例外は、メソッドが期待する形式や範囲外の引数を受け取った場合に発生します。本記事では、IllegalArgumentExceptionの原因、解決方法、具体例について説明します。

IllegalArgumentException 原因

IllegalArgumentExceptionが発生する主な原因は以下の通りです。

  • 不正な引数: メソッドが期待する形式や範囲に合わない引数が渡された場合。
  • nullの引数: nullが許可されていない引数にnullが渡された場合。
  • 範囲外の引数: 数値や文字列の範囲外の値が渡された場合。
  • 無効な形式: フォーマットが不正な引数が渡された場合。

IllegalArgumentException 解決方法

IllegalArgumentExceptionを解決するためには、以下のような方法があります。

  • 引数の検証: メソッドに渡す引数が期待される形式や範囲内にあることを事前に確認する。
  • nullチェック: 引数がnullでないことを確認する。
  • 適切な範囲の値を使用: 数値や文字列の引数がメソッドが期待する範囲内であることを確認する。
  • 例外処理の実装: メソッド内で引数を検証し、不正な引数が渡された場合に適切な例外処理を行う。

IllegalArgumentException 具体例

以下は、IllegalArgumentExceptionが発生する可能性がある具体的な例です。

public class IllegalArgumentExceptionExample {
    public static void main(String[] args) {
        try {
            printSquareRoot(-1);  // 不正な引数を渡す
        } catch (IllegalArgumentException e) {
            System.err.println("引数が不正です: " + e.getMessage());
            e.printStackTrace();
        }
    }

    public static void printSquareRoot(int number) {
        if (number < 0) {
            throw new IllegalArgumentException("numberは0以上である必要があります");
        }
        System.out.println("平方根: " + Math.sqrt(number));
    }
}

まとめ

IllegalArgumentExceptionはJavaプログラムでメソッドに不正な引数が渡された場合に発生する例外で、不正な引数やnull、範囲外の値、無効な形式などが原因です。この記事では、IllegalArgumentExceptionの主な原因と解決方法について説明しました。引数の検証やnullチェック、適切な範囲の値を使用することで、この例外を回避し、メソッドの呼び出しを正しく行うことができます。

目次