Python
 Computer >> コンピューター >  >> プログラミング >> Python

最新のPythonでカスタム例外を宣言する方法

最新のPythonにおけるカスタム例外の宣言方法

Pythonでは、標準のExceptionクラスを継承することで、独自の例外クラス(カスタム例外)を簡単に定義できます。例外に追加の引数を持たせたい場合や、既存の挙動を上書きしたい場合は、__init__メソッドをオーバーライドするのが現代的な書き方です。

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

このように定義しておくと、第2引数としてエラーメッセージの辞書(dict)を渡せるようになり、後から必要になったタイミングでその情報を自由に取り出して利用できます。

コードのポイント

  • super(ValidationError, self).__init__(message) は親クラスの初期化処理を呼び出しています。Python 3以降では、より簡潔に super().__init__(message) と記述するのが一般的です。
  • self.errors に任意のデータ(例:フィールドごとのエラーメッセージをまとめた辞書)を格納することで、例外発生時に詳細なコンテキスト情報を保持できます。

実際の使用例

try:
    raise ValidationError("入力値が不正です", {"email": "メールアドレスの形式が正しくありません"})
except ValidationError as e:
    print(e)         # 入力値が不正です
    print(e.errors)  # {'email': 'メールアドレスの形式が正しくありません'}

このパターンは、フォームバリデーションやAPIの入力チェックなど、複数のエラー情報をひとつの例外にまとめて扱いたい場面で特に役立ちます。メッセージ本体と詳細なエラー内容を分離できるため、ログ出力やユーザーへのエラー表示も柔軟に行えます。

  1. 【Python】エラーコードとエラーメッセージを含むカスタム例外クラスの作成方法

    Pythonでは、Exceptionクラスを継承した独自の例外クラスを定義することで、エラーコードやエラーメッセージを自由に組み込んだカスタム例外を作成できます。ここでは、代表的な実装パターンを2つ紹介します。エラーコードを持つカスタム例外まず、例外クラスにエラーコードを持たせる基本的な例です。__init__メソッドでコードを受け取り、インスタンス属性として保持します。class ErrorCode(Exception): def __init__(self, code): self.code = code try: raise ErrorCode(401)

  2. Pythonの変数入門:宣言方法と使い方を徹底解説

    本記事では、Pythonにおける変数の作成方法と基本的な使い方について、初心者にもわかりやすく解説します。 Pythonの変数とは 変数(Variable)とは、メモリ上に格納されたオブジェクトへの参照を保存するための「名前が付けられた場所」のことです。プログラムの中でデータを扱う際の基本となる概念です。 Pythonで変数を作成する際には、以下の命名ルールを守る必要があります。 変数名は英字またはアンダースコア(_)で始める必要がある 変数名を数字で始めることはできない 変数名に使用できるのは英数字とアンダースコアのみ(A-z、0-9、_) 変数名は大文字・小文字が区別される(date、D