error(n) Tcl Built-In Commands error(n)

```

```

# [NAME](#NAME)

error - Generate an error

# [SYNOPSIS](#SYNOPSIS)

**error message** ?*info*? ?*code*?

```

```

# [DESCRIPTION](#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](#EXAMPLE)

Generate an error if a basic mathematical operation fails:

```
if {1+2 != 3} {


    error "something is very wrong with addition"
}
```

# [SEE ALSO](#SEE_ALSO)

[catch(n)](/man/os/tcl/catch.n), [return(n)](/man/os/tcl/return.n)

# [KEYWORDS](#KEYWORDS)

error, exception

Tcl

---

Document: error(n) from tcl 9.1.0-r1 (Chainguard OS)
Source: https://downloads.sourceforge.net/project/tcl/Tcl/9.1.0/tcl9.1.0-src.tar.gz
