diff --git a/lib/elixir/lib/kernel.ex b/lib/elixir/lib/kernel.ex index 469cd8322fc..d50008434a7 100644 --- a/lib/elixir/lib/kernel.ex +++ b/lib/elixir/lib/kernel.ex @@ -3334,6 +3334,25 @@ defmodule Kernel do end #=> warning: the underscored variable "_bar" is used after being set + ## rescue/catch/after + + Function bodies support `rescue`, `catch` and `after` as `SpecialForms.try/1` + does. The following two functions are equivalent: + + def format(value) do + try do + format!(value) + catch + :exit, reason -> {:error, reason} + end + end + + def format(value) do + format!(value) + catch + :exit, reason -> {:error, reason} + end + """ defmacro def(call, expr \\ nil) do define(:def, call, expr, __CALLER__)