カテゴリ: 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()の方が適しているケースが多いです。

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の例外処理の一覧へ
新着記事
IAM Identity Centerの許可セットとポリシーの関係を解説
IAM Identity Centerの許可セットとポリシーの関係を初心者向けにわかりやすく解説!
Java の正規表現で「数字」や「英字」だけをチェックする方法
Javaの正規表現で「数字」や「英字」だけをチェックする方法を初心者向けに完全解説
Java で正規表現を使う方法(Pattern クラスと Matcher クラス)
Javaで正規表現を使う方法を完全解説!PatternクラスとMatcherクラスを初心者向けにやさしく説明
FlutterでQRコードの生成・読み取りをする方法
FlutterでQRコードの生成・読み取りを実装する方法!初心者でもできるQRアプリ開発
人気記事
インスタンスタイプの料金比較と最適な選び方(最新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も解説