カテゴリ: 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
Django
DjangoのURLルーティングとは?初心者向けに仕組みと役割をやさしく解説
New2
Django
Django ModelForm入門|初心者でもわかる基本構造と使い方
New3
Django
Djangoアプリを作る手順を完全解説!startappで始める超初心者向け入門
New4
Django
Djangoのプロジェクトとアプリの違いを徹底解説!初心者でも迷わない構造の考え方
人気記事
No.1
Java&Spring記事人気No1
Python
PythonでCassandraに接続する方法を完全ガイド!cassandra-driverの使い方
No.2
Java&Spring記事人気No2
Python
PythonでCassandraをバックアップ!データの保存と復元を初心者向けに完全ガイド
No.3
Java&Spring記事人気No3
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.4
Java&Spring記事人気No4
Flask
FlaskでJSONレスポンスを多言語化!API設計の基本を初心者向けに解説
No.5
Java&Spring記事人気No5
Flask
Flaskでフォームラベルやバリデーションメッセージを翻訳する方法!多言語対応の基本
No.6
Java&Spring記事人気No6
Flask
PythonのFlaskで言語を自動判別!ユーザーに合わせた表示切り替えの仕組みを徹底解説
No.7
Java&Spring記事人気No7
Python
PythonでRedisをキャッシュとして活用!アプリを爆速にする方法を徹底解説
No.8
Java&Spring記事人気No8
Python
PythonでNoSQL操作!エラーハンドリングを初心者向けに徹底解説