Pythonにおける「独自例外の作成」とは、標準で用意されている例外クラス(ValueError や TypeError など)では対応しきれない特定のエラー状況に対して、ユーザーが独自の例外クラスを定義して利用することを意味します。以下に、その目的と方法、注意点を詳しく説明します。
独自例外を作成する目的
Pythonには多くの標準例外がありますが、すべてのアプリケーション固有のエラーをカバーできるわけではありません。たとえば、オンラインショップの注文処理において「在庫切れエラー」「無効な会員ID」などの独自の状況を示すためには、専用の例外を作成するほうがコードの可読性・保守性が高くなります。
独自例外クラスの基本構文
Pythonの例外はすべて BaseException を祖先とし、一般には Exception クラスを継承して定義します。
このように Exception を継承するだけで、新しい例外クラスを作成できます。
独自例外にメッセージや属性を追加する
より具体的な情報を例外に含めるために、__init__ メソッドを定義してカスタマイズすることもできます。
このようにして、例外発生時にエラーメッセージに具体的な数値を含めることができます。
独自例外の使用例
このコードでは、InsufficientBalanceError が適切な条件で発生し、try-except ブロックで捕捉されます。
独自例外の設計における注意点
-
命名規則:クラス名は通常
○○Errorや○○Exceptionで終わらせるとよいです。 -
継承構造:同じカテゴリの複数の例外がある場合、基底クラスを自分で用意して階層構造を作ると便利です。
このように設計すれば、すべてのアプリケーション例外を ApplicationError でまとめて処理することも可能です。
まとめ
| 項目 | 内容 |
|---|---|
| 独自例外の定義方法 | Exception クラスを継承して新しいクラスを定義 |
| 目的 | アプリ固有のエラー状況を明確に区別し扱うため |
| カスタマイズ方法 | __init__ メソッドで属性やエラーメッセージを設定 |
| 利用時のベストプラクティス | 明確な命名と階層構造で例外を整理すること |
生成日:2025/05/03