カテゴリ: Python 更新日: 2026/02/19

Pythonの例外メッセージをカスタマイズする方法を完全解説!__str__メソッドでわかりやすいエラー表示

Pythonの例外メッセージをカスタマイズする方法(\_\_str\_\_メソッド)
Pythonの例外メッセージをカスタマイズする方法(\_\_str\_\_メソッド)

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

生徒

「Pythonのエラーって、英語だったり意味が分かりにくかったりしますよね?」

先生

「確かに最初は戸惑いますね。でも、エラーメッセージは自分で分かりやすく作れますよ。」

生徒

「えっ、エラーの文章を変えられるんですか?」

先生

「はい。__str__メソッドを使うと、表示される例外メッセージを自由に決められます。」

1. Pythonの例外メッセージとは何か

1. Pythonの例外メッセージとは何か
1. Pythonの例外メッセージとは何か

Pythonでエラーが起きると、画面に文字がずらっと表示されます。このとき表示される文章が例外メッセージです。例外メッセージは、何が原因で問題が起きたのかを人に伝えるための説明文です。

しかし、標準の例外メッセージは初心者には分かりにくいことが多く、英語表記になっている場合もあります。そのため、自分や利用者が理解しやすい文章に変えたい場面が出てきます。

2. 標準の例外メッセージの例

2. 標準の例外メッセージの例
2. 標準の例外メッセージの例

まずは、Pythonにもともと用意されている例外メッセージを見てみましょう。数字に変換できない文字列を数値に変換しようとすると、例外が発生します。


number = int("abc")

ValueError: invalid literal for int() with base 10: 'abc'

このメッセージを見て、何が起きたのかすぐに理解できる人は多くありません。そこで、エラーメッセージを日本語で分かりやすくしたくなります。

3. 独自の例外クラスを作る考え方

3. 独自の例外クラスを作る考え方
3. 独自の例外クラスを作る考え方

Pythonでは、自分専用の例外クラスを作ることができます。これは「特別なエラーの種類を自分で定義する」ことだと考えると分かりやすいです。

例外クラスは、Exceptionクラスを元にして作ります。ここに独自のルールやメッセージを追加できます。


class MyError(Exception):
    pass

この時点では、まだ中身は空っぽですが、これだけでも独自の例外として使えます。

4. __str__メソッドの役割

4. __str__メソッドの役割
4. __str__メソッドの役割

__str__メソッドは、そのオブジェクトを文字として表示するときに使われる特別なメソッドです。例外クラスに__str__メソッドを書くと、エラー表示の文章を自由に決められます。

難しく感じるかもしれませんが、「エラーが表示されるときの文章を返す場所」と考えると理解しやすくなります。


class MyError(Exception):
    def __str__(self):
        return "入力内容に問題があります"

5. カスタマイズした例外を実際に使う

5. カスタマイズした例外を実際に使う
5. カスタマイズした例外を実際に使う

作成した例外クラスは、raiseという命令を使って発生させます。raiseは「ここでエラーを起こす」という意味の命令です。


try:
    raise MyError()
except MyError as e:
    print(e)

入力内容に問題があります

このように、__str__メソッドで書いた文章がそのまま表示されます。これにより、エラー内容を日本語で直感的に伝えられます。

6. 情報を持たせた例外メッセージ

6. 情報を持たせた例外メッセージ
6. 情報を持たせた例外メッセージ

例外には、追加の情報を持たせることもできます。たとえば、どんな値が間違っていたのかをメッセージに含めると、さらに親切になります。


class InputError(Exception):
    def __init__(self, value):
        self.value = value

    def __str__(self):
        return f"入力された値「{self.value}」は正しくありません"

7. 実務でも役立つ理由

7. 実務でも役立つ理由
7. 実務でも役立つ理由

例外メッセージをカスタマイズすると、エラーの原因をすぐに把握できるようになります。自分だけでなく、他の人がプログラムを使う場合にも大きな助けになります。

特に初心者向けのプログラムや学習用ツールでは、専門用語を避けたエラーメッセージが重要です。

8. 初心者が意識したいポイント

8. 初心者が意識したいポイント
8. 初心者が意識したいポイント

__str__メソッドは、難しい仕組みではありません。「エラーが起きたときに表示したい文章を書く場所」と覚えておくと十分です。

例外メッセージを工夫するだけで、プログラムの親切さと分かりやすさは大きく変わります。

カテゴリの一覧へ
新着記事
New1
Flask
FlaskでAjaxリクエストを処理する方法!JSONとの連携を初心者向けにやさしく解説
New2
Flask
FlaskアプリのテストをGitHub Actionsで自動化する方法まとめ!初心者向け解説
New3
Python
Pythonの例外処理におけるコーディング規約を完全解説!初心者でもわかるPEP8ガイドライン
New4
Flask
FlaskでHello Worldを表示するには?最初の1行を実行してみよう
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Flask
FlaskとAWS S3を連携!静的ファイルを効率よく配信する初心者向け完全ガイド
No.3
Java&Spring記事人気No3
Python
Pythonで例外の種類ごとに処理を分ける方法を完全解説!初心者でもわかる複数except入門
No.4
Java&Spring記事人気No4
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.5
Java&Spring記事人気No5
Flask
Flask-Loginでユーザー認証を完全ガイド!初心者でもわかるログイン処理の作り方
No.6
Java&Spring記事人気No6
Python
Pythonでtry-except-else構文を使うケースとメリットを完全解説!初心者でもわかる例外処理入門
No.7
Java&Spring記事人気No7
Python
Pythonの関数を引数に渡す方法を初心者向けにやさしく解説!高階関数の使い方も完全ガイド
No.8
Java&Spring記事人気No8
Flask
FlaskでAWS RDSに接続する方法を徹底解説!MySQL/PostgreSQL設定ガイド