エラーハンドリング方針 (CLI)¶
CLI コマンドは handle_cli_errors デコレータで一元的に例外を整形表示します。
ポリシー¶
| 例外型 | 表示スタイル | 動作 |
|---|---|---|
ValueError |
黄色 Warning | メッセージのみ表示 |
RuntimeError |
赤 Error | メッセージのみ表示 |
| その他 | 赤 Panel | "Unexpected" 見出し表示 |
Traceback はデフォルト非表示 (将来的に --debug 追加予定)。内部ログ用途として stderr には traceback を出力しています。
実装概要¶
cli/utils.py に以下のデコレータを実装:
handle_cli_errors(): 例外捕捉と Rich Panel による色分け表示- 既存
with_spinner,elapsed_timeとの併用順:@app.command→@handle_cli_errors()→ 関数本体内部で helper 呼び出し
適用範囲¶
task, tag, project, task-tag, memo 全コマンド関数へ適用済み。
今後の拡張候補¶
--debug/KAGE_DEBUG=1で traceback 表示切替- エラーコードポリシー細分化 (ドメイン例外別 exit code)
- JSON 出力モード時の構造化エラー (
{"error": {"type": ..., "message": ...}})