Microlibrary, which adds special function definition macro def!
, working like this:
- The body of the function should be defined to raise errors in case of exceptional situations.
def MyModule
use Screamer
def! foo() do
raise "error"
end
end
- The macro would automaticaly create two functions: with and without screamer:
iex> MyModule.__info__ :functions
[foo: 0, foo!: 0]
- The logics of this functions is based on the Elixir contracts: screamed one raises error or return
value, clear one return
{:ok, value}
or{:error, error}
:
iex> MyModule.foo
{:error, %RuntimeError{message: "error"}}
iex> MyModule.foo!
** (RuntimeError) error
The package is available in Hex.
To install, add screamer
to your list of dependencies in mix.exs
:
def deps do
[{:screamer, "~> 0.1.1"}]
end