概要
Pythonでは、カスタム例外を作成することで、エラーハンドリングを柔軟に制御できます。標準のExceptionクラスを継承し、独自の例外を定義することが推奨されています。本記事では、カスタム例外を作成するための基本的な手順や、カスタムメッセージや追加の属性を持つ例外の設計方法を紹介します。
基本的なカスタム例外の定義
最もシンプルなカスタム例外は、Exceptionを継承するだけで作成できます。
class MyCustomError(Exception):
"""特定のエラーメッセージを扱うカスタム例外"""
pass
raise MyCustomError("このエラーが発生しました")
このコードにより、MyCustomErrorが特定のエラーメッセージとともに発生します。
__init__を使ってカスタム例外にデータを渡す
エラーの詳細情報を含む例外を作成したい場合、__init__メソッドをオーバーライドして追加データを受け取ることができます。
class ValidationError(Exception):
def __init__(self, message, errors=None):
super().__init__(message)
self.errors = errors
try:
raise ValidationError("無効なデータ", {"field": "name", "error": "必須"})
except ValidationError as e:
print(e.errors) # {"field": "name", "error": "必須"}
__str__メソッドでメッセージをカスタマイズ
デフォルトのエラーメッセージ表示をカスタマイズしたい場合は、__str__メソッドをオーバーライドできます。
class CustomError(Exception):
def __init__(self, message, code):
self.message = message
self.code = code
def __str__(self):
return f"Error {self.code}: {self.message}"
raise CustomError("ファイルが見つかりません", 404)
結論
Pythonでカスタム例外を使用すると、エラーハンドリングをより直感的にし、コードのメンテナンスが容易になります。基本的な例外定義から高度な情報を持つ例外まで、適切なデザインで実装することが重要です。