Logos.Thrown exception (Logos v0.2.0)

Copy Markdown

The Elixir exception carrying a Logos-level (throw :tag value). Logos.Eval's try special form catches this specifically (via a real Elixir rescue), matches tag against each catch clause's keyword with = -- Logos catches by keyword tag alone, with no exception-class hierarchy the way Elixir's own rescue has -- and binds value to the catch clause's bound name.

An uncaught Logos.Thrown propagates as an ordinary Elixir exception past any enclosing Elixir code; Logos.eval_string/3 catches it at the outermost boundary and converts it to an {:error, ...} tuple so the top-level API never raises for ordinary Logos-level throws.