View Source Corsa.StateM.Throws (corsa v0.1.2)
throws
verifies if a thrown exception is anticipated. When a state machine is utilized, the
contract has the ability to access the state.
Summary
Functions
Errors
iex> defmodule Elixir.Corsa.StateM.Throws.ExampleError1 do
...> use Corsa.Assert
...> use Corsa.StateM.Throws
...> throws f(x, y) do x > y end
...> throws f(x, y) do x > y end
...> def f(x, y) do x + y end
...> end
** (Corsa.ThrowsError) @throws for function 'f/2' already defined
iex> defmodule Elixir.Corsa.StateM.Throws.ExampleError2 do
...> use Corsa.Assert
...> use Corsa.StateM.Throws
...> throws f(x, x) do x > y end
...> def f(x, y) do x + y end
...> end
** (Corsa.ThrowsError) arguments in @throws should contain different names
iex> defmodule Elixir.Corsa.StateM.Throws.ExampleError3 do
...> use Corsa.Assert
...> use Corsa.StateM.Throws
...> throws f(x, _) do x > y end
...> def f(x, y) do x + y end
...> end
** (Corsa.ThrowsError) arguments in @throws cannot be ignored with _
iex> defmodule Elixir.Corsa.StateM.Throws.ExampleError4 do
...> use Corsa.Assert
...> use Corsa.StateM.Throws
...> throws f(kind, x) do x > 0 end
...> def f(x, y) do x + y end
...> end
** (Corsa.ThrowsError) 'kind' cannot be an argument in @throws
iex> defmodule Elixir.Corsa.StateM.Throws.ExampleError5 do
...> use Corsa.Assert
...> use Corsa.StateM.Throws
...> throws f(value, x) do value < 0 end
...> def f(x, y) do x + y end
...> end
** (Corsa.ThrowsError) 'value' cannot be an argument in @throws
Functions
Errors
iex> defmodule Elixir.Corsa.StateM.Throws.ExampleError1 do
...> use Corsa.Assert
...> use Corsa.StateM.Throws
...> throws f(x, y) do x > y end
...> throws f(x, y) do x > y end
...> def f(x, y) do x + y end
...> end
** (Corsa.ThrowsError) @throws for function 'f/2' already defined
iex> defmodule Elixir.Corsa.StateM.Throws.ExampleError2 do
...> use Corsa.Assert
...> use Corsa.StateM.Throws
...> throws f(x, x) do x > y end
...> def f(x, y) do x + y end
...> end
** (Corsa.ThrowsError) arguments in @throws should contain different names
iex> defmodule Elixir.Corsa.StateM.Throws.ExampleError3 do
...> use Corsa.Assert
...> use Corsa.StateM.Throws
...> throws f(x, _) do x > y end
...> def f(x, y) do x + y end
...> end
** (Corsa.ThrowsError) arguments in @throws cannot be ignored with _
iex> defmodule Elixir.Corsa.StateM.Throws.ExampleError4 do
...> use Corsa.Assert
...> use Corsa.StateM.Throws
...> throws f(kind, x) do x > 0 end
...> def f(x, y) do x + y end
...> end
** (Corsa.ThrowsError) 'kind' cannot be an argument in @throws
iex> defmodule Elixir.Corsa.StateM.Throws.ExampleError5 do
...> use Corsa.Assert
...> use Corsa.StateM.Throws
...> throws f(value, x) do value < 0 end
...> def f(x, y) do x + y end
...> end
** (Corsa.ThrowsError) 'value' cannot be an argument in @throws