[erlang-questions] Unexpected try/catch behaviour

Ulf Wiger <>
Tue Feb 23 12:28:56 CET 2010


Jeroen Koops wrote:
> 
> But this:
> 
> try true of
>     true -> throw(my_error)
> catch
>     throw:What -> { error, What }
> end.
> 
> does not catch the exception and gives me, from the shell: ** exception
> throw: my_error
> 
> Is that logical in a way I don't see?

 From the Erlang Reference Manual:

"try Exprs of
     Pattern1 [when GuardSeq1] ->
         Body1;
     ...;
     PatternN [when GuardSeqN] ->
         BodyN
catch
     [Class1:]ExceptionPattern1 [when ExceptionGuardSeq1] ->
         ExceptionBody1;
     ...;
     [ClassN:]ExceptionPatternN [when ExceptionGuardSeqN] ->
         ExceptionBodyN
end
...

An exception occurring during the evaluation of Body is not caught."


BR,
Ulf W
-- 
Ulf Wiger
CTO, Erlang Solutions Ltd, formerly Erlang Training & Consulting Ltd
http://www.erlang-solutions.com
---------------------------------------------------

---------------------------------------------------

WE'VE CHANGED NAMES!

Since January 1st 2010 Erlang Training and Consulting Ltd. has become ERLANG SOLUTIONS LTD.

www.erlang-solutions.com



More information about the erlang-questions mailing list