## Tcl8.6.0/Tk8.6.0 Documentation > Tcl Commands, version 8.6.0 > error

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

### NAME

error — Generate an error

### SYNOPSIS

error message ?info? ?code?

### DESCRIPTION

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.

The -errorinfo 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 -errorinfo return option. If the info argument is present, it is used to initialize the -errorinfo return options 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 the stack trace; in its place will be info. Historically, this feature had been 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
    set savedInfo $::errorInfo
    	...
    error $errMsg $savedInfo

When working with Tcl 8.5 or later, the following code should be used instead:

    catch {...} errMsg options
    	...
    return -options $options $errMsg

If the code argument is present, then its value is stored in the -errorcode return option. The -errorcode return option is intended to hold a machine-readable description of the error in cases where such information is available; see the return manual page for information on the proper format for this option's value.

### EXAMPLE

Generate an error if a basic mathematical operation fails:

    if {1+2 != 3} {
        error "something is very wrong with addition"
    }

### SEE ALSO

catch, return

### KEYWORDS

error, exception
Copyright © 1993 The Regents of the University of California. Copyright © 1994-1996 Sun Microsystems, Inc.