# `Schooner.Eval.Error`
[🔗](https://github.com/ausimian/schooner/blob/1.2.0/lib/schooner/eval/error.ex#L1)

Exception raised by the evaluator for runtime and syntactic failures.

The `:reason` field is a structured term — atom or tagged tuple — meant
to be matched on. The `:message` is derived from the reason, so
assertions can pin behaviour on `:reason` without coupling to wording.

`:location` is the `Schooner.Location` of the form that failed, or
`nil` when it is not known. See "Source locations" in `Schooner`.
With `debug: true`, `:scheme_backtrace` lists the procedure calls
that led to the error, most recent first (see `Schooner.Frame`);
otherwise it is `nil`.

---

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