---
name: "BackgdErr"
section: "2"
platform: "linux"
package: "perl-tk"
version: "b11.02-5"
release: "Debian 1.3 (Bo)"
platforms: ["linux"]
url: "https://new.carta.tech/BackgdErr"
---

# BackgdErr(2)

report Tcl error that occurred in background processing

## NAME

Tk\_BackgroundError - report Tcl error that occurred in background processing

## SYNOPSIS

```
#include <tk.h>

Tk_BackgroundError(interp)
```

## ARGUMENTS

Interpreter in which the error occurred.

## DESCRIPTION

This procedure is typically invoked when a Tcl error occurs during \`\`background processing'' such as executing a Tcl command in response to a button press or menu entry invocation. When such an error occurs, the error condition is reported to Tk or to a widget or some other C code, and there is not usually any obvious way for that code to report the error to the user. In these cases the code calls **Tk\_BackgroundError** with an *interp* argument identifying the interpreter in which the error occurred. **Tk\_BackgroundError** attempts to invoke the **tkerror** Tcl command to report the error in an application-specific fashion. If no **tkerror** command exists, or if it returns with an error condition, then **Tk\_BackgroundError** reports the error itself by printing a message on the standard error file.

**Tk\_BackgroundError** does not invoke **tkerror** immediately (in some cases this could interfere with scripts that are in process at the time the error occurred). Instead, it invokes **tkerror** later as an idle callback. **Tk\_BackgroundError** saves the values of the **errorInfo** and **errorCode** variables and restores these values just before invoking **tkerror**.

It is possible for many background errors to accumulate before **tkerror** is invoked.  When this happens, each of the errors is processed in order.  However, if **tkerror** returns a break exception, then all remaining error reports for the interpreter are skipped.

## KEYWORDS

background, error, tkerror
