[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