[erlang-questions] Must and May convention

Roman Galeev <>
Wed Sep 27 11:39:47 CEST 2017


Imo you can do it with:
must(M,F,A) ->
case erlang:apply(M,F,A) of
{ok, Res} -> Res;
_Err ->
io:format("Error ~p:~p(~p) ~p",[M, F, A, _Err]),
exit({must, F, A,})
end.

In this case, you don't need to make new functions out of existing ones,
and still get a nice error message.

On Wed, Sep 27, 2017 at 11:30 AM, Karlo Kuna <> wrote:

> could we have something in type specifications that indicates throw case:
>
> -spec f_name( Args ) -> .....; throw(TE | TE1 | ....).
>
> On Wed, Sep 27, 2017 at 11:25 AM, Attila Rajmund Nohl <
> > wrote:
>
>> 2017-09-27 11:08 GMT+02:00 Joe Armstrong <>:
>> [...]
>> > This turns out to be very convenient - I read many files
>> > in my programs, so it's nice to know that must_read_file
>> > will print a nice error message and terminate
>> > if I give it a bad filename.
>> >
>> > Note: I can get the program to crash by writing
>> >
>> >    {ok, B} = file:read_file(F)
>> >
>> > But I don't get a nice error message telling me the filename.
>> >
>> > Any takers?
>>
>> My problem with all kinds of very common prefixes is that it breaks
>> function name autocompletion. Or at least makes it harder to use when
>> I have dozens/hundreds/thousands of function names starting with the
>> same 3-5 characters - either I have to type those 3-5 characters all
>> the time plus any more characters to find unique prefix for
>> autocompletion or have to autocomplete twice (one for the may/must
>> difference, one for the actual function name). Eclipse (for Java)
>> helpfully shows the method signature including return value and thrown
>> exceptions - I think this problem should be solved by the IDEs and not
>> by naming conventions.
>> _______________________________________________
>> erlang-questions mailing list
>> 
>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>
>
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
>
>


-- 
With best regards,
     Roman Galeev,
     +420 702 817 968
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20170927/ba0c44b2/attachment-0001.html>


More information about the erlang-questions mailing list