プログラミング

【Java】IllegalArgumentExceptionの原因と対策方法

投稿日:2022年3月15日 更新日:

IllegalArgumentExceptionの原因と対策方法はとても簡単です。
基本的なことを理解すればすぐに解消できます。

IllegalArgumentExceptionとは?

不正な引数または不適切な引数をメソッドに渡したことを示すためにスローされる例外です。
例えば、0以上の値が渡されるべきなのに、負数が渡されるとスローされるといったものです。

原因

具体的なコードで発生原因を確認していきましょう。

■発生させるコード
例としてFileクラスのsetLastModifiedメソッドに「-1」をセットします。

■実行結果
そうすると、IllegalArgumentExceptionが発生します。

■原因
原因は、setLastModifiedメソッドでは0より小さい数値に対してIllegalArgumentExceptionを発生させるようにしていたからです。

解消方法

IllegalArgumentExceptiongが発生しない条件の値をメソッドに渡してあげることです。
上記の例だと、setLastModifiedTimeメソッドに0以上の値を渡せば問題ありません。

IllegalArgumentExceptiongが発生した場合、発生箇所はスタックトレース(■実行結果のような出力)で確認できますし、発生箇所も書いてあるので追うことは簡単です。
発生条件も書いてあるので、不適切な値が入らないようにしてあげればよいだけですね。

IllegalArgumentExceptionの使い方

独自のクラスを作って、その中でIllegalArgumentExceptionを発生させたいときは以下のようにします。

■使い方の例
例外発生時のメッセージ有無と、原因となる例外を渡すか否かを組み合わせた4パターンがあります。

基本的にはIllegalArgumentExceptionにメッセージを付けるだけのパターンが多いと個人的には認識しています。
発生原因となっている詳細が必要な場合には、上記の例のように新規例外を設定してあげるとよいので必要に応じて使い分けるようにして下さい。

まとめ

  • IllegalArgumentExceptionとは不正な引数または不適切な引数をメソッドに渡したことを示すためにスローされる例外
  • 原因はメソッドに不正な値が入ったことによるもの
  • 解消方法は発生箇所から追って行き、適切な値を確認して、渡される値を制御する
  • 独自クラスで例外をスローすることは可能
    また、スロー時はメッセージ有無と原因となる新規例外の設定有無を選択できる

最後に

独学が難しいと感じていたり、エラーの解消に時間がかかるようだったらオンラインのサポートサービスを検討してみて下さい。
回答率100%の掲示板に質問し放題のオンラインサービス

参考

こちらは例外について理解を深めたい方向けの書籍です。
Javaプログラム: 不朽のJava哲学

 
最後までお読み頂き、ありがとうございました!
ご意見・ご要望がありましたら、遠慮なくコメント下さい!
もし内容が良かったらランキング評価を頂けると励みになります(^^)

ランキング評価する

-プログラミング

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

no image

【PHP】配列と連想配列と多次元配列の説明と使用例

配列とは? 1つの変数に複数の値を持つものです。 整数型や文字列型は1つの変数に1つの値を持ちますが、配列は同じようなデータの集まりを1つの変数に持つことができるようになっています。 配列には通常の添 …

正規表現で複数の箇所を入れ替える方法

複数の特定の箇所を入れ替えるテクニックです。 確認環境 Sakuraエディタ 置換方法 ここでは例として、:区切りの前後の文字列を入れ替えてみます。 置換前データ メニュー:AAA メニュー:BBB …

Observerパターンってどう使うの?を考える(商品の予約)

目的 Observerパターンの使いどころとなる状況を具体例でもって理解する。   ゴール(実現すること) 商品の予約システムにおけるユーザ通知   実装する機能 ・商品を予約する …

VBAが書けるまでにどのくらいかかったか?

これからVBAを学ぼうとしている人向けに参考情報として書きます。 前提 前提として、私の経歴を少し書いておきます。 ・PHPでのWeb開発1年未満 ・Javaの簡易なアプリは作れる ・SQLも理解して …

プログラミングスキルを向上させる3ステップ

プログラミングスキルを向上させるための3ステップです。 私自身が実践していることであり、向上を実感している方法です。 写経 本をベースに写経します。 写し書きをして動いたらOKではなく、以下のような問 …

■運営者プロフィール
IT業界10年のエンジニア。
PHP -> VBA -> Javaと渡り歩いてきて、今はJavaをメインにフリーランスエンジニアとして活躍中!

[保有資格]
・Java SE 11 Gold

一度はエンジニアを辞めざるを得なかった私が再びエンジニアとして復活した数奇な物語

SpringFramworkの良書

■おすすめ教材
Javaの基本を学んだ人が、次のステップとして読む本(中級者向け)

※SpringはJavaのFrameworkの1つです。
変更のしやすさ、保守性の高さが特徴です。