BackgdErr.3   [plain text]


'\"
'\" Copyright (c) 1992-1994 The Regents of the University of California.
'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\" 
'\" RCS: @(#) $Id: BackgdErr.3,v 1.2 2001/09/14 01:42:06 zlaski Exp $
'\" 
.so man.macros
.TH Tcl_BackgroundError 3 7.5 Tcl "Tcl Library Procedures"
.BS
.SH NAME
Tcl_BackgroundError \- report Tcl error that occurred in background processing
.SH SYNOPSIS
.nf
\fB#include <tcl.h>\fR
.sp
\fBTcl_BackgroundError\fR(\fIinterp\fR)
.SH ARGUMENTS
.AS Tcl_Interp *interp
.AP Tcl_Interp *interp in
Interpreter in which the error occurred.
.BE

.SH DESCRIPTION
.PP
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 \fBTcl_BackgroundError\fR with an
\fIinterp\fR argument identifying the interpreter in which the
error occurred.  At the time \fBTcl_BackgroundError\fR is invoked,
\fIinterp->result\fR is expected to contain an error message.
\fBTcl_BackgroundError\fR will invoke the \fBbgerror\fR
Tcl command to report the error in an application-specific fashion.
If no \fBbgerror\fR command exists, or if it returns with an error condition,
then \fBTcl_BackgroundError\fR reports the error itself by printing
a message on the standard error file.
.PP
\fBTcl_BackgroundError\fR does not invoke \fBbgerror\fR immediately
because this could potentially interfere with scripts that are in process
at the time the error occurred.
Instead, it invokes \fBbgerror\fR later as an idle callback.
\fBTcl_BackgroundError\fR saves the values of the \fBerrorInfo\fR and
\fBerrorCode\fR variables and restores these values just before
invoking \fBbgerror\fR.
.PP
It is possible for many background errors to accumulate before
\fBbgerror\fR is invoked.  When this happens, each of the errors
is processed in order.  However, if \fBbgerror\fR returns a
break exception, then all remaining error reports for the
interpreter are skipped.

.SH KEYWORDS
background, bgerror, error