カテゴリ: Python 更新日: 2026/03/10

Pythonのカスタム例外を作成する方法を完全解説!初心者でもわかる独自のExceptionクラス入門

Pythonのカスタム例外を作成する方法(独自のExceptionクラス)
Pythonのカスタム例外を作成する方法(独自のExceptionクラス)

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

生徒

「Pythonでエラーを自分で作れるって聞いたんですが、本当ですか?」

先生

「できますよ。Pythonではカスタム例外と呼ばれる、独自のExceptionクラスを作れます。」

生徒

「そもそも例外って何なんですか?」

先生

「プログラムの実行中に起こる問題を知らせる仕組みです。では、基本から順番に見ていきましょう。」

1. Pythonの例外(エクセプション)とは?

1. Pythonの例外(エクセプション)とは?
1. Pythonの例外(エクセプション)とは?

Pythonの例外(エクセプション)とは、プログラムの実行中に発生するトラブルを知らせるための仕組みです。例えば、存在しないファイルを開こうとしたり、数字として計算できない文字を計算しようとしたときに発生します。

例外は、料理中に「火を消し忘れた!」と警報が鳴るようなものです。問題が起きたことをプログラムに伝え、処理を止めたり、別の対応をさせたりできます。

2. Exceptionクラス(エクセプションクラス)の基本

2. Exceptionクラス(エクセプションクラス)の基本
2. Exceptionクラス(エクセプションクラス)の基本

Pythonでは、すべての例外はExceptionクラス(エクセプションクラス)を元に作られています。Exceptionは、例外の親クラスのような存在です。

身近な例でいうと、「動物」という大きな分類があり、その中に「犬」や「猫」があるイメージです。Pythonの例外も同じ構造になっています。

3. なぜカスタム例外(独自例外)を作るのか

3. なぜカスタム例外(独自例外)を作るのか
3. なぜカスタム例外(独自例外)を作るのか

Pythonには多くの標準例外がありますが、プログラムの内容によっては意味が分かりにくいことがあります。そこで使われるのがカスタム例外(独自例外)です。

例えば、「年齢がマイナスです」というエラーを表現したい場合、専用の例外を作ることで、エラーの意味が一目で分かるようになります。

4. カスタム例外クラスの作り方

4. カスタム例外クラスの作り方
4. カスタム例外クラスの作り方

カスタム例外は、Exceptionクラスを継承(けいしょう)して作成します。継承とは、既存のクラスの機能を引き継ぐことです。


class AgeError(Exception):
    pass

このようにクラスを定義するだけで、独自の例外クラスが完成します。passは「何もしない」という意味で、最低限の形です。

5. raise文(レイズ文)で例外を発生させる

5. raise文(レイズ文)で例外を発生させる
5. raise文(レイズ文)で例外を発生させる

作成したカスタム例外は、raise文(レイズ文)を使って発生させます。raiseは「例外を投げる」という意味です。


age = -5

if age < 0:
    raise AgeError("年齢は0以上で入力してください")

このコードでは、年齢が0未満の場合にAgeErrorが発生します。エラーメッセージも自由に指定できます。

6. try-exceptでカスタム例外を処理する

6. try-exceptでカスタム例外を処理する
6. try-exceptでカスタム例外を処理する

発生したカスタム例外は、try-except文で受け取って処理できます。これにより、プログラムが突然止まるのを防げます。


try:
    age = -3
    if age < 0:
        raise AgeError("不正な年齢です")
except AgeError as e:
    print(e)

不正な年齢です

このように、カスタム例外も通常の例外と同じ方法で扱えます。

7. エラーメッセージを持つカスタム例外

7. エラーメッセージを持つカスタム例外
7. エラーメッセージを持つカスタム例外

カスタム例外では、エラーメッセージをより分かりやすくするために、初期化処理を書くこともできます。


class LoginError(Exception):
    def __init__(self, message):
        self.message = message
        super().__init__(message)

このようにすると、ログイン失敗など特定の状況専用の例外を表現できます。

8. カスタム例外を使うメリット

8. カスタム例外を使うメリット
8. カスタム例外を使うメリット

カスタム例外を使うことで、エラーの原因が明確になり、プログラムの読みやすさと保守性が向上します。特に初心者のうちは、エラー内容が日本語で分かりやすいだけでも理解が進みます。

また、エラーの種類ごとに処理を分けられるため、実務でも非常に重要な技術です。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
カテゴリの一覧へ
新着記事
New1
Python
Pythonのカスタム例外を作成する方法を完全解説!初心者でもわかる独自のExceptionクラス入門
New2
PHP
PHP の型変換を完全ガイド!初心者でもわかる明示的変換・自動変換
New3
PHP
PHPの真偽値と条件判定をやさしく解説!初心者でもわかるempty・isset・is_nullの使い方
New4
PHP
PHP の file_get_contents() を使ってファイルを読み込む方法!初心者でもできる簡単なファイル操作
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonのfinally文を徹底解説!例外発生時でも実行される処理の書き方と使い方
No.2
Java&Spring記事人気No2
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.3
Java&Spring記事人気No3
Python
Pythonのクラスメソッドと静的メソッドの違いとは?初心者でも迷わない使い分けガイド
No.4
Java&Spring記事人気No4
Python
Pythonの書き方を基本から解説!はじめてのPythonプログラム
No.5
Java&Spring記事人気No5
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.6
Java&Spring記事人気No6
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.7
Java&Spring記事人気No7
PHP
初心者向けPHP の MySQL のデータを更新する方法(UPDATE 文)完全ガイド
No.8
Java&Spring記事人気No8
PHP
PHP の MySQL 接続の基本(mysqli, PDO)を完全解説!初心者向けガイド