# `Ollixir.Errors`
[🔗](https://github.com/nshkrdotcom/ollixir/blob/main/lib/ollixir/errors.ex#L1)

Error handling utilities for Ollixir.

## Error Types

  * `Ollixir.ConnectionError` - Connection errors (server unreachable)
  * `Ollixir.RequestError` - Pre-request validation errors
  * `Ollixir.ResponseError` - API response errors

# `error_message`
[🔗](https://github.com/nshkrdotcom/ollixir/blob/main/lib/ollixir/errors.ex#L42)

```elixir
@spec error_message(
  Ollixir.ConnectionError.t()
  | Ollixir.RequestError.t()
  | Ollixir.ResponseError.t()
  | term()
) :: String.t()
```

Get error message from any error type.

# `format_for_log`
[🔗](https://github.com/nshkrdotcom/ollixir/blob/main/lib/ollixir/errors.ex#L51)

```elixir
@spec format_for_log(
  Ollixir.ConnectionError.t()
  | Ollixir.RequestError.t()
  | Ollixir.ResponseError.t()
) ::
  String.t()
```

Format error for logging.

# `retryable?`
[🔗](https://github.com/nshkrdotcom/ollixir/blob/main/lib/ollixir/errors.ex#L33)

```elixir
@spec retryable?(
  Ollixir.ConnectionError.t()
  | Ollixir.RequestError.t()
  | Ollixir.ResponseError.t()
) ::
  boolean()
```

Check if an error is retryable.

# `wrap`
[🔗](https://github.com/nshkrdotcom/ollixir/blob/main/lib/ollixir/errors.ex#L19)

```elixir
@spec wrap(term()) ::
  {:ok, term()}
  | {:error,
     Ollixir.ConnectionError.t()
     | Ollixir.RequestError.t()
     | Ollixir.ResponseError.t()}
```

Wrap a function result, converting errors to appropriate types.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
