# 錯誤

本頁列出 ToriiDB 各層回報失敗的方式：`store` 的 Go error、`Exec` 的文字回應，以及 `daemon` 的 sentinel error。

## 各層的錯誤形式

| 來源 | 形式 |
|---|---|
| `store` 方法 | Go `error`，查詢類為 `(value, ok bool)` |
| `store.Exec` | 文字：`OK`、`(nil)`、`(integer) n`、`error: ...`、`usage: ...`、`unknown: CMD` |
| `daemon` 方法 | `ErrNotFound`、`ErrBadRequest`、`ErrNoEmbedder`（已包裝，以 `errors.Is` 判斷） |

## Daemon 錯誤種類

透過 socket 時，失敗以錯誤 `kind` 傳遞，client 端再對應回 sentinel error；完整對照表見[傳輸協定](/zh/socket-daemon-protocol)。`ErrAlreadyRunning` 只會由 `Start()` 在 socket 已有其他 daemon 回應時回傳。

## 相關頁面

- [傳輸協定](/zh/socket-daemon-protocol)
- [指令摘要](/zh/cli-reference)
- [daemon](/zh/api-reference-daemon)
