# `Splode.Error`
[🔗](https://github.com/ash-project/splode/blob/v0.3.1/lib/splode/error.ex#L5)

Use this module to create an aggregatable error.

For example:

```elixir
defmodule MyApp.Errors.InvalidArgument do
  use Splode.Error, fields: [:name, :message], class: :invalid

  def message(%{name: name, message: message}) do
    "Invalid argument #{name}: #{message}"
  end
end
```

# `t`

```elixir
@type t() :: Exception.t()
```

# `error_class?`

```elixir
@callback error_class?() :: boolean()
```

# `from_json`

```elixir
@callback from_json(map()) :: struct()
```

# `splode_error?`

```elixir
@callback splode_error?() :: boolean()
```

---

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