Java で IllegalArgumentException はどのようなシナリオで発生しますか?

WBOY
リリース: 2023-06-25 10:21:17
オリジナル
981 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!