View Source Ash.Error (ash v3.4.42)
Tools and utilities used by Ash to manage and conform errors
Summary
Functions
Raises an error if the result is an error, otherwise returns the result
Types
@type class() :: %{ :__struct__ => class_module(), :__exception__ => true, :errors => [t()], :class => error_class(), :bread_crumbs => [String.t()], :vars => Keyword.t(), :stacktrace => Splode.Stacktrace.t() | nil, :context => map(), optional(atom()) => any() }
@type class_module() ::
Ash.Error.Unknown
| Ash.Error.Framework
| Ash.Error.Invalid
| Ash.Error.Forbidden
@type error_class() :: :unknown | :framework | :invalid | :forbidden
@type t() :: %{ :__struct__ => module(), :__exception__ => true, :class => error_class(), :bread_crumbs => [String.t()], :vars => Keyword.t(), :stacktrace => Splode.Stacktrace.t() | nil, :context => map(), optional(atom()) => any() }
Functions
Raises an error if the result is an error, otherwise returns the result
Alternatively, you can use the defsplode
macro, which does this automatically.
Options
:error_opts
- Options to pass toto_error/2
when converting the returned error:unknown_error_opts
- Options to pass to the unknown error if the function returns only:error
. not necessary if your function always returns{:error, error}
.
Examples
def function(arg) do
case do_something(arg) do
:success -> :ok
{:success, result} -> {:ok, result}
{:error, error} -> {:error, error}
end
end
def function!!(arg) do
YourErrors.unwrap!(function(arg))
end