deal with exceptions inside macroexpansion