exceptions.py
基本情報 [必須]
| 項目 | 内容 |
|---|---|
| ファイルパス | tasks/exceptions.py |
| 言語 | Python |
| 種別 | 例外定義 |
| 行数 | 20 行 |
概要 [必須]
Django タスクシステムの例外クラスを定義するモジュール。基底クラス TaskException を頂点とする例外階層を提供し、タスク自体の不正(InvalidTask)、バックエンドの設定不正(InvalidTaskBackend)、タスク結果の取得失敗(TaskResultDoesNotExist)、タスク結果の不一致(TaskResultMismatch)の 4 種類を区別する。InvalidTaskBackend のみ ImproperlyConfigured を継承し、Django の設定チェック機構と整合する。
設計パターン [必須]
| パターン名 | 適用箇所 | 説明 |
|---|---|---|
| 例外階層 | TaskException → InvalidTask / TaskResultDoesNotExist / TaskResultMismatch | 基底例外を共有しつつ、用途ごとにサブクラスを定義 |
主要な構成要素 [必須]
クラス / 関数一覧
| 名前 | 種別 | 可視性 | シグネチャ | 概要 |
|---|---|---|---|---|
| TaskException | class | public | — | タスク関連例外の基底クラス(直接 raise 禁止) |
| InvalidTask | class | public | — | 不正な Task が渡された場合の例外 |
| InvalidTaskBackend | class | public | — | 不正な Task バックエンド設定の例外 |
| TaskResultDoesNotExist | class | public | — | 指定 ID の TaskResult が存在しない例外 |
| TaskResultMismatch | class | public | — | TaskResult が別の Task に属している場合の例外 |
重要なメソッド・関数の詳細 [必須]
各クラスはカスタムメソッドを持たず、例外階層の定義のみを目的とする。
依存関係 [必須]
このファイルが依存するもの
| 依存先 | ファイルパス | 種別 | 用途 |
|---|---|---|---|
| ImproperlyConfigured | django/core/exceptions.py | class | InvalidTaskBackend の基底クラス |
このファイルに依存するもの [最重要]
| 依存元 | ファイルパス | 行番号 | 用途 |
|---|---|---|---|
| init.py | django/tasks/init.py | 14 | InvalidTaskBackend のインポート |
| base.py | django/tasks/base.py | 14 | TaskResultMismatch のインポート |
| backends/base.py | django/tasks/backends/base.py | 14 | InvalidTask のインポート |
| backends/dummy.py | django/tasks/backends/dummy.py | 4 | TaskResultDoesNotExist のインポート |
定数一覧 [必須]
定数定義は存在しません。
リレーション [必須]
Model ではないため該当なし。
オーバーライドメソッド [必須]
親クラスのメソッドをオーバーライドするものはありません。
データ構造 [必須]
独自のデータ構造は定義されていません。
セキュリティ考慮 [必須]
| 観点 | 実装状況 | 詳細 |
|---|---|---|
| 入力検証 | 該当なし | 例外定義のみ |
技術的負債・既知の問題 [必須]
特になし。
拡張性・保守性 [必須]
- 拡張ポイント:
TaskExceptionを継承して新しいタスク例外を追加可能 - 制約事項:
InvalidTaskBackendはImproperlyConfiguredを継承するため、TaskExceptionの階層外に位置する - テスト容易性: 例外定義のみのため、テスト不要
関連ファイル [必須]
- base.py.md - TaskResultMismatch を使用
- init.py.md - InvalidTaskBackend を使用