ARGUMENTSwith the macro, the function name, file and lineno are
automagically recorded. Just pass the error and
a printf format string giving more information about where
the error is occuring.
DESCRIPTIONthis 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. This version includes context information about lower errors