[erlang-questions] Exceptions and gen_server

Roberto Aloi <>
Fri Nov 6 17:42:13 CET 2009


Hi Anton,

I usually do the following:

foo(Params) ->
    case gen_server:call(?MODULE, {foo, Params}) of
        {error, Reason} ->
            erlang:error({Reason, Params}); % I return params to
understand what's going on...
        {ok, Value} ->
            Value
    end.

handle_call({create, Name, Opts}, _From, State) ->
 ...

Regards,

Roberto Aloi
Erlang Training and Consulting Ltd.
http://www.erlang-consulting.com

Anton Krasovsky wrote:
> What would be the standard way of returning/throwing an exception in a
> result to a gen_server:call?
>
> Would something like that be reasonable:
>
> a() ->
> case gen_server:call(..., a) of
>     {ok, Value} -> Value;
>     {error, Error} -> throw({error, Error})
> end
>
> and
>
> handle_call(a, ...) ->
> case ... of
>     {ok, Value} -> {reply, {ok, Value} , State};
>     {error, Error} -> {reply, {error, Error} , State}
> end
>
> Regards,
> Anton
>
> ________________________________________________________________
> erlang-questions mailing list. See http://www.erlang.org/faq.html
> erlang-questions (at) erlang.org
>
>   



More information about the erlang-questions mailing list