tcl7.6 C API - BackgdErr






NAME

     Tcl_BackgroundError - report  Tcl  error  that  occurred  in
     background processing


SYNOPSIS

     #include <tcl.h>

     Tcl_BackgroundError(interp)


ARGUMENTS

     Tcl_Interp   *interp   (in)      Interpreter  in  which  the
                                      error occurred.





DESCRIPTION

     This procedure is typically invoked when a Tcl error  occurs
     during  ``background processing'' such as executing an event
     handler.  When such an error occurs, the error condition  is
     reported  to  Tcl  or  to a widget or some other C code, and
     there is not usually any obvious way for that code to report
     the  error  to  the  user.   In  these  cases the code calls
     Tcl_BackgroundError with an interp argument identifying  the
     interpreter  in  which  the  error  occurred.   At  the time
     Tcl_BackgroundError is invoked, interp->result  is  expected
     to  contain  an  error  message.   Tcl_BackgroundError  will
     invoke the bgerror Tcl command to report  the  error  in  an
     application-specific fashion.  If no bgerror command exists,
     or  if  it   returns   with   an   error   condition,   then
     Tcl_BackgroundError  reports  the error itself by printing a
     message on the standard error file.

     Tcl_BackgroundError  does  not  invoke  bgerror  immediately
     because  this  could potentially interfere with scripts that
     are in process at the time the error occurred.  Instead,  it
     invokes    bgerror    later    as    an    idle    callback.
     Tcl_BackgroundError saves the values of  the  errorInfo  and
     errorCode  variables  and  restores these values just before
     invoking bgerror.

     It is possible for  many  background  errors  to  accumulate
     before  bgerror  is invoked.  When this happens, each of the
     errors is processed in order.  However, if bgerror returns a
     break  exception,  then  all remaining error reports for the
     interpreter are skipped.



KEYWORDS

     background, bgerror, error