The return command is used to return from a procedure. It is needed if return is to occur before the end of the procedure body, or if a constant value needs to be returned. As a matter of style, I also use return at the end of a procedure, even though a procedure returns the value of the last command executed in the body.
Exceptional return conditions can be specified with some optional arguments to return. The complete syntax is:
The -code option value is one of ok, error, return, break, continue, or an integer. ok is the default if -code is not specified.
The -code error option makes return behave much like the error command. The -errorcode option sets the global errorCode variable, and the -errorinfo option initializes the errorInfo global variable. When you use return -code error, there is no error command in the stack trace. Compare Example 6-17 with Example 6-19:
proc bar {} { return -code error bogus } catch {bar}result => 1 set result => bogus set errorInfo => bogus while executing "bar" |
The return, break, and continue code options take effect in the caller of the procedure doing the exceptional return. If -code return is specified, then the calling procedure returns. If -code break is specified, then the calling procedure breaks out of a loop, and if -code continue is specified, then the calling procedure continues to the next iteration of the loop. These -code options to return enable the construction of new control structures entirely in Tcl. The following example implements the break command with a Tcl procedure:
proc break {} { return -code break }
3.128.173.32