[erlang-questions] is empty catch statement possible?

Motiejus Jakštys <>
Fri Feb 10 09:09:54 CET 2012


2012/2/10 Konstantin Tcepliaev <>:
> Hello again, Motiejus.
>
> One more thing: macro variables' scope is not limited to the text of macro, so in a piece of code such as:
>
> lager:set_loglevel(lager_console_backend, InitialLevel),
> ..
> ?silent(SLevel, Expr),
> ..
> lager:set_loglevel(lager_console_backend, NewLevel), %% NewLevel /= InitialLevel
> ..
> ?silent(SLevel, OtherExpr), %% badmatch here!
>
> ..you'll get a badmatch error on your __Lager_OldLevel variable. Redefining your macro as a normal function would be a great solution.

This is why I was initially wrapping the macro to the function.
"JavaScript"ish way makes sense in this case, so Lager_OldLevel will
be in a separate scope.

-- 
Motiejus Jakštys



More information about the erlang-questions mailing list