ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



bgerror(n)                                  Tcl Built-In Commands                                 bgerror(n)



____________________________________________________________________________________________________________

NAME
       bgerror - Command invoked to process background errors

SYNOPSIS
       bgerror message
____________________________________________________________________________________________________________


DESCRIPTION
       The bgerror command doesn't exist as built-in part of Tcl.  Instead, individual applications or users
       can define a bgerror command (e.g. as a Tcl procedure) if they wish to handle background errors.

       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
       after 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 appli-cation; application;
       cation; 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.

       When Tcl detects a background error, it saves information about the error  and  invokes  the  bgerror
       command  later  as  an  idle  event  handler. Before invoking bgerror, Tcl restores the errorInfo and
       errorCode variables to their values at the time the error occurred, then it invokes bgerror with  the
       error  message  as  its  only argument.  Tcl assumes that the application has implemented the bgerror
       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 bgerror command as long as no error is generated.

       If  another  Tcl error occurs within the bgerror command (for example, because no bgerror command has
       been defined) then Tcl reports the error itself by writing a message to stderr.

       If several background errors accumulate before bgerror is invoked to process them,  bgerror  will  be
       invoked  once  for  each error, in the order they occurred.  However, if bgerror returns with a break
       exception, then any remaining errors are skipped without calling bgerror.

       Tcl has no default implementation for bgerror. However, in applications using Tk there is  a  default
       bgerror  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 *ErrorDialog.func-tion.text, *ErrorDialog.function.text,
       tion.text, to specify the caption for the  function  button,  and  *ErrorDialog.function.command,  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.


SEE ALSO
       after(n), tclvars(n)


KEYWORDS
       background error, reporting



Tcl                                                  7.5                                          bgerror(n)

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.