## Tcl8.6.17/Tk8.6.17 Documentation > Tcl C API > BackgdErr

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 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
    Tcl_BackgroundException, Tcl_BackgroundError — 背景処理中に生じた Tcl 例外を報告する report Tcl exception that occurred in background processing
  SYNOPSIS
    #include <tcl.h>
    Tcl_BackgroundException(interp, code)
    Tcl_BackgroundError(interp)
  引数 ARGUMENTS
    Tcl_Interp *interp (入力in)
    int code (入力in)
  説明 DESCRIPTION
  KEYWORDS

### NAME

Tcl_BackgroundException, Tcl_BackgroundError — 背景処理中に生じた Tcl 例外を報告する report Tcl exception that occurred in background processing

### SYNOPSIS

#include <tcl.h>
Tcl_BackgroundException(interp, code)
Tcl_BackgroundError(interp)

### 引数 ARGUMENTS

Tcl_Interp *interp (入力in)
  その中で不都合が生じる解釈実行機能｡ 　 Interpreter in which the exception occurred.

int code (入力in)
  報告される例外返り符号 The exceptional return code to be reported.

### 説明 DESCRIPTION

この手続函数は典型的には譬えば行事処理機能の様な “背景処理” の間 Tcl 例外(何か TCL_OK 以外の返り符号)が生じた時に起動される｡そのような不都合が生じた時に､ Tcl 又は部品又は何か他の C 符号命令に不都合の状態が報告され､通常は､使用者に不都合を報告する為の符号に就いては明らかな方法はない｡このような場合､符号命令は､その中で例外が生じた解釈実行機能を特定する interp 引数と､例外の返り符号値を保有する code 引数を伴う Tcl_BackgroundException を呼出す｡解釈実行機能の結果内のどの不都合伝言文も含む解釈実行機能の状態と､選択的返り値の辞書内のどの見出しの値も捕捉され保存される｡Tcl_BackgroundException は行事待機繰返しの為に､幾らか後の時間に捕捉された値を引数として渡して interp bgerror 命令により背景処理不都合を処理する為の解釈実行機能内に登録された命令を起動する為に準備する｡登録された処理機能命令は応用譜に固有の方法で例外を報告することを意味する｡処理機能命令は二つの引数を受取る､解釈実行機能の結果と不都合が生じた時の解釈実行機能の追加指定の返り値である｡もし応用譜が､処理機能命令を登録していない場合､省略時設定の処理機能命令が不都合を報告するために bgerror を呼ぼうと試みる｡もし処理機能命令を起動している間に不都合状態が起ると､Tcl_BackgroundException が不都合そのものを標準不都合ファイル上に伝言文を印刷することにより報告する｡ 　　　　 This procedure is typically invoked when a Tcl exception (any return code other than TCL_OK) occurs during “background processing” such as executing an event handler. When such an exception occurs, the condition is reported to Tcl or to a widget or some other C code, and there is not usually any obvious way for that code to report the exception to the user. In these cases the code calls Tcl_BackgroundException with an interp argument identifying the interpreter in which the exception occurred, and a code argument holding the return code value of the exception. The state of the interpreter, including any error message in the interpreter result, and the values of any entries in the return options dictionary, is captured and saved. Tcl_BackgroundException then arranges for the event loop to invoke at some later time the command registered in that interpreter to handle background errors by the interp bgerror command, passing the captured values as arguments. The registered handler command is meant to report the exception in an application-specific fashion. The handler command receives two arguments, the result of the interp, and the return options of the interp at the time the error occurred. If the application registers no handler command, the default handler command will attempt to call bgerror to report the error. If an error condition arises while invoking the handler command, then Tcl_BackgroundException reports the error itself by printing a message on the standard error file.

Tcl_BackgroundException は処理機能命令を直接には起動しない､理由はそれが潜在的に不都合が起ったときに処理している記述譜について干渉するかもしれないから｡その代わり､それは後に待機状態呼び戻しの時に処理機能命令を起動する｡ Tcl_BackgroundException does not invoke the handler command immediately because this could potentially interfere with scripts that are in process at the time the error occurred. Instead, it invokes the handler command later as an idle callback.

処理機能命令が起動する前に多くの背景処理が累積する可能性がある｡これが生じた時はそれぞれの不都合はその順に処理される｡しかしながら､もし処理機能命令が break 例外により返った時､解釈実行機能に対する全ての残りの不都合報告は飛び越される｡ 　　　 It is possible for many background exceptions to accumulate before the handler command is invoked. When this happens, each of the exceptions is processed in order. However, if the handler command returns a break exception, then all remaining error reports for the interpreter are skipped.

Tcl_BackgroundError はより古くより簡単な相互対話機能であり､報告された例外符号が TCL_ERROR の時は便利である｡それは次と等価である: 　　 The Tcl_BackgroundError routine is an older and simpler interface useful when the exception code reported is TCL_ERROR. It is equivalent to:

    Tcl_BackgroundException(interp, TCL_ERROR);

### KEYWORDS

background, bgerror, error, interp
Copyright © 1992-1994 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.