From 81bc8d5fab0ec689579328d409b67107975dc527 Mon Sep 17 00:00:00 2001 From: Louis Pilfold Date: Fri, 11 Nov 2016 15:48:04 +0000 Subject: [PATCH] Document implicit function try --- lib/elixir/lib/kernel.ex | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) 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__)