Skip to content

エラーコード一覧

Bookmark CLI Extension v1 の CommandResult で扱うエラーコードと表示方針です。

This content is for v1.2.0. Switch to the latest version for up-to-date documentation.

このページでは、疑似CLIが返すエラーコードを定義します。

Application層はDomain errorとInfrastructure errorを、ここで定義するエラーコードへ変換します。

Presentation層はエラーコードの意味を再解釈せず、CommandResultを表示へ変換します。

エラーコードは安定したmachine-readableな値として扱います。

表示文言はユーザー向けに変更できます。

JSON出力では ok: falseerror.code を返します。

error.message は表示用の短い説明です。

error.details はdebug用の補足情報です。

{
"ok": false,
"command": "cd 99",
"error": {
"code": "not_found",
"message": "対象が見つかりません。",
"details": {
"input": "99"
}
}
}
code意味主なコマンド
not_found指定した対象が見つからないgo, find, cd, mv, rm, rename, tag
folder_not_found指定したfolder pathが見つからないls, cd, tree, mark, mkdir, mv
already_marked保存先に同じURLのBookmarkが存在するmark
already_exists同じ親folderに同名のfolderが存在するmkdir
unsupported_tabCLI起動元タブをBookmarkとして保存できないmark, tag current
invalid_argument引数の形や組み合わせが不正全コマンド
permission_deniedChrome APIの権限が不足している書き込み系
chrome_bookmarks_failedChrome Bookmarks APIの呼び出しに失敗したBookmark操作全般
storage_failedchrome.storage の読み書きに失敗した状態保存、仮想タグ、利用統計

指定した対象が見つからない場合に返します。

番号指定が直前の結果一覧に存在しない場合も、このコードを返します。

番号がfolderを期待する場面でBookmarkを指している場合も、このコードを返します。

代表例は次のとおりです。

Terminal window
go unknown-keyword
cd 99
rm -f 99

指定したfolder pathが見つからない場合に返します。

path入力を受け取るコマンドで使います。

代表例は次のとおりです。

Terminal window
cd Work/Missing
ls Work/Missing
mark --to Work/Missing

保存先folderに同じURLのBookmarkが存在する場合に返します。

mark --allow-duplicate が指定された場合は、このエラーを返さず保存します。

別folderに同じURLが存在する場合は候補一覧を表示し、保存を止めます。

この場合は、保存先での重複ではないため already_marked にはしません。

同じ親folderに同名のfolderが存在する場合に返します。

v1では mkdir で使います。

Terminal window
mkdir Tools
mkdir Admin --to Work

CLI起動元タブのURLまたはtitleを取得できない場合に返します。

Chrome内部ページ、拡張機能ページ、権限不足のtabなどが対象です。

marktag current で使います。

Terminal window
mark
tag current urgent

引数の形や組み合わせが不正な場合に返します。

例は、必須引数の不足、不正な数値、同時に指定できないoptionの組み合わせです。

Terminal window
tree --depth abc
tag 3 --remove
rename 3

invalid_argument はparse済みのCommand ASTをuse caseへ渡す前に検出できる場合もあります。

その場合も、Presentation層では同じCommandResultとして表示します。

Chrome APIの権限が不足している場合に返します。

manifestの権限不足、runtime permissionの拒否、Chrome側の制約が該当します。

Other Bookmarks などのbrowser管理folderを削除しようとした場合も、このコードを返します。

v1では bookmarksstorageactiveTab を必須権限とします。

Chrome Bookmarks APIの呼び出しが失敗した場合に返します。

Bookmark Tree取得、Bookmark追加、移動、更新、削除の失敗が対象です。

Infrastructure層でChrome API由来の例外や runtime.lastError を変換します。

chrome.storage の読み書きが失敗した場合に返します。

保存データの読み込み、保存、migration、掃除処理が対象です。

保存に失敗した場合でも、Chrome Bookmark Manager側の書き込みと整合性が崩れないようにします。

人間向け表示では、エラーコードと短い説明を表示します。

error: folder_not_found
message: folder path was not found: Work/Missing

JSON出力では、error.code を安定した値として返します。

error.details は実装都合で追加できます。

ただし、error.details のshapeを外部仕様として固定しません。

Domain層の純粋関数が返すエラーにはテストを書きます。

対象はpath解決、番号解決、tag正規化、結果選択です。

Application層はPortの失敗をエラーコードへ変換するテストを書きます。

Presentation層はエラー表示のview model変換をテストします。