diff options
Diffstat (limited to 'doc/error.n')
| -rw-r--r-- | doc/error.n | 74 | 
1 files changed, 47 insertions, 27 deletions
diff --git a/doc/error.n b/doc/error.n index 347e26e..a95c691 100644 --- a/doc/error.n +++ b/doc/error.n @@ -5,10 +5,8 @@  '\" See the file "license.terms" for information on usage and redistribution  '\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.  '\"  -'\" RCS: @(#) $Id: error.n,v 1.2 1998/09/14 18:39:52 stanton Exp $ -'\"  -.so man.macros  .TH error n "" Tcl "Tcl Built-In Commands" +.so man.macros  .BS  '\" Note:  do not modify the .SH NAME line immediately below!  .SH NAME @@ -19,40 +17,62 @@ error \- Generate an error  .SH DESCRIPTION  .PP -Returns a TCL_ERROR code, which causes command interpretation to be +Returns a \fBTCL_ERROR\fR code, which causes command interpretation to be  unwound.  \fIMessage\fR is a string that is returned to the application  to indicate what went wrong.  .PP -If the \fIinfo\fR argument is provided and is non-empty, -it is used to initialize the global variable \fBerrorInfo\fR. -\fBerrorInfo\fR is used to accumulate a stack trace of what -was in progress when an error occurred; as nested commands unwind, -the Tcl interpreter adds information to \fBerrorInfo\fR.  If the -\fIinfo\fR argument is present, it is used to initialize -\fBerrorInfo\fR and the first increment of unwind information -will not be added by the Tcl interpreter.  In other +The \fB\-errorinfo\fR return option of an interpreter is used +to accumulate a stack trace of what was in progress when an +error occurred; as nested commands unwind, +the Tcl interpreter adds information to the \fB\-errorinfo\fR +return option.  If the \fIinfo\fR argument is present, it is +used to initialize the \fB\-errorinfo\fR return options and +the first increment of unwind information +will not be added by the Tcl interpreter.   +In other  words, the command containing the \fBerror\fR command will not appear -in \fBerrorInfo\fR; in its place will be \fIinfo\fR. -This feature is most useful in conjunction with the \fBcatch\fR command: +in the stack trace; in its place will be \fIinfo\fR. +Historically, this feature had been most useful in conjunction +with the \fBcatch\fR command:  if a caught error cannot be handled successfully, \fIinfo\fR can be used  to return a stack trace reflecting the original point of occurrence  of the error: +.PP +.CS +catch {...} errMsg +set savedInfo $::errorInfo +\&... +\fBerror\fR $errMsg $savedInfo +.CE +.PP +When working with Tcl 8.5 or later, the following code +should be used instead: +.PP  .CS -\fBcatch {...} errMsg -set savedInfo $errorInfo +catch {...} errMsg options  \&... -error $errMsg $savedInfo\fR +return -options $options $errMsg  .CE  .PP  If the \fIcode\fR argument is present, then its value is stored -in the \fBerrorCode\fR global variable.  This variable is intended -to hold a machine-readable description of the error in cases where -such information is available; see the \fBtclvars\fR manual -page for information on the proper format for the variable. -If the \fIcode\fR argument is not -present, then \fBerrorCode\fR is automatically reset to -``NONE'' by the Tcl interpreter as part of processing the -error generated by the command. - +in the \fB\-errorcode\fR return option.  The \fB\-errorcode\fR +return option is intended to hold a machine-readable description +of the error in cases where such information is available; see +the \fBreturn\fR manual page for information on the proper format +for this option's value. +.SH EXAMPLE +.PP +Generate an error if a basic mathematical operation fails: +.PP +.CS +if {1+2 != 3} { +    \fBerror\fR "something is very wrong with addition" +} +.CE +.SH "SEE ALSO" +catch(n), return(n)  .SH KEYWORDS -error, errorCode, errorInfo +error, exception +'\" Local Variables: +'\" mode: nroff +'\" End:  | 
