elixir catch
defmodule SomeModule do @doc """ iex> SomeModule.do_something() {:error, "error: %ArgumentError{message: \\"You provided a wrong argument\\"}"} """ def do_something() do raise ArgumentError, "You provided a wrong argument" catch kind, error -> {:error, "#{kind}: #{inspect(error)}"} end @doc """ iex> SomeModule.try_something() {:error, "error: %ArgumentError{message: \\"You provided a wrong argument\\"}"} """ def try_something() do try do raise ArgumentError, "You provided a wrong argument" catch kind, error -> {:error, "#{kind}: #{inspect(error)}"} end end end
Source: elixir-lang.org