カテゴリ: Javaの例外処理 更新日: 2026/05/04

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のthrow文とは具体的にどのような役割を持つ命令なのですか?初心者にもわかりやすく教えてください。

Javaのthrow文は、プログラマーがソースコードの中で「意図的に例外(エラー)を発生させたい」ときに使用するキーワードです。通常、プログラムの実行中にエラーが起きるとシステムが自動的に例外を投げますが、throw文を使うことで、例えば「入力された値がマイナスだったらエラーにする」といった独自のルール(ビジネスロジック)に基づいて、開発者が好きなタイミングで処理を中断し、呼び出し元にエラーを通知することができるようになります。
Javaの例外処理の一覧へ
新着記事
Flutter
Flutterでのリポジトリパターンの実装例
Flutterでリポジトリパターンを実装する方法を完全解説!初心者向けアーキテクチャ設計入門
Java
Java の Objects クラスを使って null チェックを簡単にする方法
JavaのObjectsクラスの使い方を完全ガイド!nullチェックを簡単・安全に行う方法
Java
Java の UUID クラスを使って一意の識別子を作成する方法
JavaのUUIDクラスの使い方を完全ガイド!初心者でもわかる一意な識別子の作成方法
Java
Java の古い日付クラス(Date, Calendar)と新しい日付 API の違い
JavaのDateとCalendarと新しい日付APIの違いとは?初心者向け完全ガイド
人気記事
Java
Java の Random クラスを使ってランダムな数値を生成する方法
JavaのRandomクラスの使い方を完全ガイド!初心者でもわかる乱数生成
Java
Java の getter メソッドと setter メソッドの使い方
Javaのgetterメソッドとsetterメソッドの使い方を完全ガイド!初心者でもわかるアクセス方法
AWS
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
AWS
【AWS】VPCとは?初心者向けに仕組み・用途・できることをわかりやすく解説
【AWS】VPCとは?初心者向けに仕組み・用途・できることをわかりやすく解説

🔌 USBポート不足を解消

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

UGREEN USB-Cハブを見る

※ Amazon広告リンク