カテゴリ: Javaの例外処理 更新日: 2025/11/09

Javaのthrow文の使い方を徹底解説!自分で例外を発生させる基本と活用法

351
Java の throw 文を使って自分で例外を発生させる方法

先生と生徒の会話形式で理解しよう

生徒

「先生、Javaの例外処理で、例外を自分で作って発生させることってできるんですか?」

先生

「できますよ。そのときに使うのがthrow文です。Javaでは、意図的に例外を投げて処理を止めることができるんです。」

生徒

「えっ、それってどんなときに使うんですか?どう書けばいいのかも知りたいです!」

先生

「それでは、throw文の基本から具体例まで、丁寧に解説していきましょう。」

1. Javaのthrow文とは?

1. Javaのthrow文とは?
1. Javaのthrow文とは?

Javaのthrow文は、開発者が意図的に例外を発生させたいときに使う文です。たとえば、不正なデータが渡されたときに処理を中断して、呼び出し元にエラーを通知したい場合に活用します。

Javaでは、すでに用意されているExceptionクラスやそのサブクラス(IllegalArgumentExceptionNullPointerExceptionなど)を使って、簡単に例外を発生させることができます。

2. throw文の基本構文を理解しよう

2. throw文の基本構文を理解しよう
2. throw文の基本構文を理解しよう

Javaのthrow文は以下のように記述します。


throw new Exception("例外メッセージ");

このようにnewキーワードを使って例外オブジェクトを生成し、それをthrowで投げます。メッセージを渡すことで、何が原因で例外が発生したかを明確にできます。

3. 実際の使用例:不正な引数に対して例外を投げる

3. 実際の使用例:不正な引数に対して例外を投げる
3. 実際の使用例:不正な引数に対して例外を投げる

ここでは、メソッドの引数が不正だった場合にIllegalArgumentExceptionthrowで投げる実例を紹介します。


public class ThrowExample {
    public static void main(String[] args) {
        checkAge(-5);
    }

    public static void checkAge(int age) {
        if (age < 0) {
            throw new IllegalArgumentException("年齢は0以上である必要があります");
        }
        System.out.println("年齢:" + age);
    }
}

このコードでは、マイナスの年齢が入力されたときにIllegalArgumentExceptionを発生させています。Javaでは、こうしたチェック処理を明確に書けるのがthrow文の強みです。

Javaをこれから始める人や、 オブジェクト指向の考え方を基礎から理解したい人には、 定番の入門書がこちらです。

スッキリわかるJava入門 第4版をAmazonで見る

※ Amazon広告リンク

4. 実行結果を確認しよう

4. 実行結果を確認しよう
4. 実行結果を確認しよう

上記のコードを実行すると、以下のような例外が発生します。


Exception in thread "main" java.lang.IllegalArgumentException: 年齢は0以上である必要があります

このように、例外メッセージが明確に表示されることで、エラーの原因をすばやく特定できます。

5. Javaで使われる代表的な例外クラス

5. Javaで使われる代表的な例外クラス
5. Javaで使われる代表的な例外クラス

Javaのthrow文で使用される例外クラスには、以下のような種類があります:

  • IllegalArgumentException:不正な引数が渡されたとき
  • NullPointerException:null参照が不正に使用されたとき
  • ArithmeticException:0で割り算など計算エラー時
  • IOException:ファイル操作でエラーが発生したとき

これらの例外クラスをthrowで投げることで、正しい使い方を強制し、バグを未然に防ぐことができます。

6. throw文とthrowsの違い

6. throw文とthrowsの違い
6. throw文とthrowsの違い

throwthrowsはよく混同されがちですが、役割が異なります。

  • throw:実際に例外オブジェクトを発生させる
  • throws:そのメソッドが例外を投げる可能性があると宣言する

たとえば、throw new Exception()と書く場合、そのメソッドにthrows Exceptionも記述する必要があります。これにより、Javaの例外処理は明確かつ安全に構成されます。

7. 独自の例外クラスを作ってthrowで投げる

7. 独自の例外クラスを作ってthrowで投げる
7. 独自の例外クラスを作ってthrowで投げる

Javaでは、必要に応じて独自の例外クラスを定義し、それをthrowで投げることもできます。たとえば、特定のビジネスロジック用の例外を作ることで、可読性や保守性が向上します。


class CustomException extends Exception {
    public CustomException(String message) {
        super(message);
    }
}

public class CustomThrow {
    public static void main(String[] args) throws CustomException {
        validateInput("");
    }

    public static void validateInput(String input) throws CustomException {
        if (input.isEmpty()) {
            throw new CustomException("入力値が空です");
        }
        System.out.println("入力値:" + input);
    }
}

このようにして、自作の例外クラスもthrow文で扱えます。

8. Javaのthrow文を使うときの注意点

8. Javaのthrow文を使うときの注意点
8. Javaのthrow文を使うときの注意点

Javaのthrow文を使うときは、以下の点に注意しましょう:

  • 投げる例外がチェック例外の場合は、throws宣言が必要
  • エラーメッセージは具体的かつわかりやすく記述する
  • 頻繁に使いすぎると、コードが読みにくくなる

throw文はとても便利ですが、適切な場所で使うことが大切です。無闇に例外を投げると、逆にバグの原因になります。

Javaの例外処理の一覧へ
新着記事
FlutterのMVP・MVVMアーキテクチャの違いと使い分け
FlutterのMVP・MVVMアーキテクチャの違いと使い分けを初心者向けに解説!
オニオンアーキテクチャの基本とFlutterでの適用例
オニオンアーキテクチャの基本とFlutterでの適用例を初心者向けに解説
クリーンアーキテクチャとは?Flutterでの導入メリット
クリーンアーキテクチャとは?Flutterでの導入メリットをやさしく解説
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金まとめ
【AWS】RDS for Oracleの特徴・できないこと・バージョン・料金を初心者向けに徹底解説
人気記事
インスタンスタイプの料金比較と最適な選び方(最新2025年版)
AWSのインスタンスタイプの料金比較と最適な選び方【2025年最新版】
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCの料金体系まとめ!無料枠・通信費・各種サービスごとの料金を徹底解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説

🔌 USBポート不足を解消

Type-C 1本で拡張。
開発・作業環境を一気に快適に

UGREEN USB-Cハブを見る

※ Amazon広告リンク