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

JavaのgetMessage()メソッドの使い方を完全ガイド!初心者でもわかる例外メッセージの取得方法

355
Java のエラーメッセージを取得する「getMessage()」の使い方

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

生徒

「Javaで例外が発生したときに、エラーの内容だけ取り出す方法ってありますか?」

先生

「ありますよ。getMessage()というメソッドを使えば、エラーメッセージだけを簡単に取り出すことができます。」

生徒

「スタックトレースじゃなくて、メッセージだけ欲しいときに便利ですね!」

先生

「その通りです。それでは、getMessage()メソッドの基本から応用まで、詳しく見ていきましょう!」

1. getMessage()メソッドとは?

1. getMessage()メソッドとは?
1. getMessage()メソッドとは?

JavaのgetMessage()メソッドは、例外オブジェクトに含まれているエラーメッセージを取り出すためのメソッドです。これはThrowableクラスで定義されており、ExceptionRuntimeExceptionなど、すべての例外で利用可能です。

エラーの詳細な原因をログに出力したり、ユーザーにわかりやすく表示したいときに便利です。

2. getMessage()の基本的な使い方

2. getMessage()の基本的な使い方
2. getMessage()の基本的な使い方

JavaでgetMessage()を使って例外のメッセージを取得するには、catchブロックの中で例外オブジェクト(たとえばe)に対してe.getMessage()と書くだけです。


public class GetMessageExample {
    public static void main(String[] args) {
        try {
            int result = 10 / 0;
        } catch (ArithmeticException e) {
            System.out.println("エラー内容: " + e.getMessage());
        }
    }
}

エラー内容: / by zero

このようにgetMessage()を使うことで、不要な情報を省き、必要なエラー内容だけを取り出すことができます。

3. printStackTrace()との違い

3. printStackTrace()との違い
3. printStackTrace()との違い

Javaで例外情報を出力する方法には、printStackTrace()もあります。違いは以下のとおりです。

  • getMessage():エラーメッセージだけ取得
  • printStackTrace():発生場所やスタック情報をすべて出力

簡潔なログ出力やエラー通知メールなどには、getMessage()の方が適しているケースが多いです。

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

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

※ Amazon広告リンク

4. カスタム例外とgetMessage()の連携

4. カスタム例外とgetMessage()の連携
4. カスタム例外とgetMessage()の連携

Javaでは、独自のカスタム例外クラスを作成して、getMessage()で任意のエラーメッセージを返すことができます。


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

public class Main {
    public static void main(String[] args) {
        try {
            throw new MyException("カスタムエラーが発生しました");
        } catch (MyException e) {
            System.out.println("メッセージ: " + e.getMessage());
        }
    }
}

メッセージ: カスタムエラーが発生しました

このようにsuper(message)で渡した文字列がgetMessage()で取得できます。

5. getMessage()でnullが返る場合とは?

5. getMessage()でnullが返る場合とは?
5. getMessage()でnullが返る場合とは?

getMessage()は、例外オブジェクトにメッセージが設定されていない場合、nullを返します。たとえば、引数なしのthrow new Exception()のようなケースです。


try {
    throw new Exception();
} catch (Exception e) {
    System.out.println("結果: " + e.getMessage());
}

結果: null

そのため、実務では常にExceptionのコンストラクタにmessageを指定するのが望ましいです。

6. getLocalizedMessage()との違いも知っておこう

6. getLocalizedMessage()との違いも知っておこう
6. getLocalizedMessage()との違いも知っておこう

getMessage()と似たメソッドにgetLocalizedMessage()がありますが、これはローカライズされたメッセージを取得するためのものです。

多言語対応が必要なアプリケーションなどで使いますが、特別な設定をしなければgetMessage()と同じ値が返されます。

7. getMessage()の活用場面まとめ

7. getMessage()の活用場面まとめ
7. getMessage()の活用場面まとめ

Javaの例外処理におけるgetMessage()の主な活用場面は以下のとおりです。

  • ログにエラー内容を記録する
  • ユーザーにわかりやすいエラーメッセージを表示する
  • APIレスポンスにエラー内容を返す
  • デバッグ中の情報確認に活用

getMessage()を使いこなすことで、Javaの例外処理がより実用的で丁寧なものになります。

Javaの例外処理の一覧へ
新着記事
Java
Java のカプセル化とは?データを安全に管理する仕組み
Java のカプセル化とは?データを安全に管理する仕組みを解説
Java
Java の継承の制約(final クラスや final メソッドの扱い)
Java の継承の制約を完全解説!final クラスや final メソッドの扱いを初心者向けにやさしく解説
AWS
【AWS】CLIで環境変数を使った安全な認証情報管理
【AWS CLI】環境変数で安全に認証情報を管理する方法を徹底解説!初心者向けセキュリティ対策ガイド
Java
Java のコンストラクタと継承(親クラスのコンストラクタを呼ぶ方法)
Java のコンストラクタと継承(親クラスのコンストラクタを呼ぶ方法)を初心者向けにやさしく解説
人気記事
AWS
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
【AWS】s3 cpコマンド完全ガイド!基本・recursive・exclude/includeも解説
AWS
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
【AWS】VPCエンドポイントとは?種類・使い方・S3連携まで完全解説
AWS
インスタンスタイプの料金比較と最適な選び方(最新2026年版)
AWSインスタンスタイプの料金比較と最適な選び方!初心者でもわかる2025年最新ガイド
AWS
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説
【AWS】RDSの料金体系まとめ!ざっくり理解・高いと感じる理由も解説

🔌 USBポート不足を解消

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

UGREEN USB-Cハブを見る

※ Amazon広告リンク