Returns a TCL_ERROR code, which causes command interpretation to be unwound. Message is a string that is returned to the application to indicate what went wrong.
If the info argument is provided
and is non-empty, it is used to initialize the global variable errorInfo.
errorInfo 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 errorInfo. If the info argument is present, it is used to
initialize errorInfo and the first increment of unwind information will
not be added by the Tcl interpreter. In other words, the command containing
the error command will not appear in errorInfo; in its place will be info.
This feature is most useful in conjunction with the catch command: if a
caught error cannot be handled successfully, info can be used to return
a stack trace reflecting the original point of occurrence of the error:
catch {...} errMsg
If the code argument is present, then its value is stored in the errorCode
global variable. This variable is intended to hold a machine-readable description
of the error in cases where such information is available; see the tclvars
manual page for information on the proper format for the variable. If the
code argument is not present, then errorCode is automatically reset to
‘‘NONE’’ by the Tcl interpreter as part of processing the error generated by
the command.
set savedInfo $errorInfo
...
error $errMsg $savedInfo
if {1+2 != 3} {
error "something is very wrong with addition"
}