Java は重要なプログラミング言語として、実装プロセス中に多数の例外処理を伴います。その中で IllegalArgumentException は頻繁に使用される例外タイプです。では、IllegalArgumentException はどのようなときに発生するのでしょうか?
IllegalArgumentException は、不正または不正なパラメーターがメソッドに渡されたときにプログラムがこの例外をスローすることを意味します。具体的には、IllegalArgumentException は通常、次のシナリオで発生します:
1. パラメーターの型が一致しない
パラメーターをメソッドに渡すとき、その型がメソッドで定義された仮パラメーターと一致する場合、型が一致する場合一致しない場合は、IllegalArgumentException がスローされます。たとえば、文字列型のパラメータが、整数型の引数を必要とするメソッドに渡された場合、この例外がスローされます。
サンプル コード:
public class Test { public static void printNumber(int number) { System.out.println(number); } public static void main(String[] args) { String str = "123"; printNumber(str); // 抛出IllegalArgumentException异常 } }
2. パラメーター値が不正です
受信パラメーターがメソッド内にない場合、パラメーターの値の範囲がメソッドで指定されることがあります。このスコープ内では、IllegalArgumentException 例外もスローされます。たとえば、0 以上のパラメータのみを受け入れるメソッドに 0 未満の整数パラメータが渡された場合、この例外がスローされます。
サンプル コード:
public class Test { public static void divide(int dividend) { if (dividend < 0) { throw new IllegalArgumentException("参数不合法,除数不能为负数"); } System.out.println(10 / dividend); } public static void main(String[] args) { divide(-2); // 抛出IllegalArgumentException异常 } }
3. Null ポインター例外
メソッドでパラメーターを null にすることが許可されていないのに、null 値を渡すと、IllegalArgumentException も発生します。投げられる。たとえば、空の文字列が許可されていないメソッドに空の文字列が渡された場合、この例外がスローされます。
サンプル コード:
public class Test { public static void printString(String str) { if (str == null || str.isEmpty()) { throw new IllegalArgumentException("参数不合法,必须为非空字符串"); } System.out.println(str); } public static void main(String[] args) { String str = null; printString(str); // 抛出IllegalArgumentException异常 } }
上記のシナリオでは、IllegalArgumentException が発生した場合、try-catch ステートメントを使用して例外をキャッチして処理することを検討できます。同時に、プログラムを設計する際には、パラメータによる例外を回避するために、パラメータの転送を標準化するように努める必要があります。
以上がJava で IllegalArgumentException はどのようなシナリオで発生しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。