with the macro, the function name, file and lineno are
automagically recorded. Just pass the error.
DESCRIPTION
this function is used to pass an error up a level in the
call chain (ie, if the error isn't handled at the
current level). This allows us to track the traceback
of the error.