69 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <HTML><HEAD><TITLE>Tcl Built-In Commands - bgerror manual page</TITLE></HEAD><BODY>
 | |
| <H3><A NAME="M2">NAME</A></H3>
 | |
| bgerror - Command invoked to process background errors
 | |
| <H3><A NAME="M3">SYNOPSIS</A></H3>
 | |
| <B>bgerror </B><I>message</I><BR>
 | |
| <H3><A NAME="M4">DESCRIPTION</A></H3>
 | |
| The <B>bgerror</B> command doesn't exist as built-in part of Tcl.  Instead,
 | |
| individual applications or users can define a <B>bgerror</B>
 | |
| command (e.g. as a Tcl procedure) if they wish to handle background
 | |
| errors.
 | |
| <P>
 | |
| A background error is one that occurs in an event handler or some
 | |
| other command that didn't originate with the application.
 | |
| For example, if an error occurs while executing a command specified
 | |
| with the <B><A HREF="../TkCmd/after.htm">after</A></B> command, then it is a background error.
 | |
| For a non-background error, the error can simply be returned up
 | |
| through nested Tcl command evaluations until it reaches the top-level
 | |
| code in the application; then the application can report the error
 | |
| in whatever way it wishes.  When a background error occurs, the
 | |
| unwinding ends in the Tcl library and there is no obvious way for Tcl
 | |
| to report the error.
 | |
| <P>
 | |
| When Tcl detects a background error, it saves information about the
 | |
| error and invokes the <B>bgerror</B> command later as an idle event
 | |
| handler. Before invoking <B>bgerror</B>, Tcl restores the
 | |
| <B>errorInfo</B> and <B>errorCode</B> variables to their values at the
 | |
| time the error occurred, then it invokes <B>bgerror</B> with the error
 | |
| message as its only argument.  Tcl assumes that the application has
 | |
| implemented the <B>bgerror</B> command, and that the command will
 | |
| report the error in a way that makes sense for the application.  Tcl
 | |
| will ignore any result returned by the <B>bgerror</B> command as long
 | |
| as no error is generated.
 | |
| <P>
 | |
| If another Tcl error occurs within the <B>bgerror</B> command (for
 | |
| example, because no <B>bgerror</B> command has been defined) then Tcl
 | |
| reports the error itself by writing a message to stderr.
 | |
| <P>
 | |
| If several background errors accumulate before <B>bgerror</B> is
 | |
| invoked to process them, <B>bgerror</B> will be invoked once for each
 | |
| error, in the order they occurred.  However, if <B>bgerror</B> returns
 | |
| with a break exception, then any remaining errors are skipped without
 | |
| calling <B>bgerror</B>.
 | |
| <P>
 | |
| Tcl has no default implementation for <B>bgerror</B>. However, in
 | |
| applications using Tk there is a default <B>bgerror</B> procedure which
 | |
| posts a dialog box containing the error message and offers the user a
 | |
| chance to see a stack trace showing where the error occurred.  In
 | |
| addition to allowing the user to view the stack trace, the dialog
 | |
| provides an additional application configurable button which may be
 | |
| used, for example, to save the stack trace to a file.  By default,
 | |
| this is the behavior associated with that button.  This behavior can
 | |
| be redefined by setting the option database values
 | |
| <B>*ErrorDialog.function.text</B>, to specify the caption for the
 | |
| function button, and <B>*ErrorDialog.function.command</B>, to specify
 | |
| the command to be run.  The text of the stack trace is appended to the
 | |
| command when it is evaluated.  If either of these options is set to
 | |
| the empty string, then the additional button will not be displayed in
 | |
| the dialog.
 | |
| 
 | |
| <H3><A NAME="M5">SEE ALSO</A></H3>
 | |
| <B><A HREF="../TkCmd/after.htm">after</A></B>, <B><A HREF="../TkCmd/tclvars.htm">tclvars</A></B>
 | |
| <H3><A NAME="M6">KEYWORDS</A></H3>
 | |
| <A href="../Keywords/B.htm#background error">background error</A>, <A href="../Keywords/R.htm#reporting">reporting</A>
 | |
| <HR><PRE>
 | |
| <A HREF="../copyright.htm">Copyright</A> © 1990-1994 The Regents of the University of California.
 | |
| <A HREF="../copyright.htm">Copyright</A> © 1994-1996 Sun Microsystems, Inc.
 | |
| <A HREF="../copyright.htm">Copyright</A> © 1995-1997 Roger E. Critchlow Jr.</PRE>
 | |
| </BODY></HTML>
 | 
