diff options
Diffstat (limited to 'doc/exit.n')
| -rw-r--r-- | doc/exit.n | 34 |
1 files changed, 27 insertions, 7 deletions
@@ -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: exit.n,v 1.3 2000/09/07 14:27:47 poenitz Exp $ -'\" -.so man.macros .TH exit n "" Tcl "Tcl Built-In Commands" +.so man.macros .BS '\" Note: do not modify the .SH NAME line immediately below! .SH NAME @@ -21,11 +19,33 @@ exit \- End the application .PP Terminate the process, returning \fIreturnCode\fR to the system as the exit status. -If \fIreturnCode\fR isn't specified then it defaults +If \fIreturnCode\fR is not specified then it defaults to 0. +.SH EXAMPLE +.PP +Since non-zero exit codes are usually interpreted as error cases by +the calling process, the \fBexit\fR command is an important part of +signaling that something fatal has gone wrong. This code fragment is +useful in scripts to act as a general problem trap: +.PP +.CS +proc main {} { + # ... put the real main code in here ... +} -.SH "SEE ALSO" -exec(n), tclvars(n) +if {[catch {main} msg options]} { + puts stderr "unexpected script error: $msg" + if {[info exist env(DEBUG)]} { + puts stderr "---- BEGIN TRACE ----" + puts stderr [dict get $options -errorinfo] + puts stderr "---- END TRACE ----" + } + # Reserve code 1 for "expected" error exits... + \fBexit\fR 2 +} +.CE +.SH "SEE ALSO" +exec(n) .SH KEYWORDS -exit, process +abort, exit, process |
