[erlang-questions] When to return {ok, Value} or just the Value

Richard Carlsson <>
Wed Nov 16 17:30:55 CET 2011


On 11/16/2011 05:25 PM, Garrett Smith wrote:
> Mechanically, error exceptions provide a stack trace, exits do not:
>
> Eshell V5.8.5  (abort with ^G)
> 1>  catch(exit(foo)).
> {'EXIT',foo}
> 2>  catch(error(foo)).
> {'EXIT',{foo,[{erl_eval,do_apply,5},
>                {erl_eval,expr,5},
>                {shell,exprs,7},
>                {shell,eval_exprs,7},
>                {shell,eval_loop,3}]}}

Only in the way the crappy old 'catch' operator presents it. The stack 
trace is available also for exits and throws, if you ask for it:

Eshell V5.8.4  (abort with ^G)
1>  catch(exit(foo)).
{'EXIT',foo}
2> erlang:get_stacktrace().
[{erl_eval,do_apply,5},
  {erl_eval,expr,5},
  {shell,exprs,7},
  {shell,eval_exprs,7},
  {shell,eval_loop,3}]
3>

    /Richard



More information about the erlang-questions mailing list