return - プロシージャから戻ります。
return ?-code code? ?-errorinfo info? ?-errorcode
code? ?string?
string を戻り値として、現在のプロシージャ(あるいは、トップレベルコマンドや
source コマンド)から直ちにリターンします。
string が指定されなければ、空文字列が結果として返されます。
-codeオプションが指定されない通常の場合は、プロシージャは正常にリターンします(その完了コードはTCL_OKである)
。-codeオプションはプロシージャからの例外的リターンを生成するのに使えます。
code は以下の値のいずれかを持ちます。
- ok
- error
- return
- break
- continue
- value
- ok
- 正常リターン。このオプションが省略されたのと同じです。
-
- error
- エラーリターン。 errorInfoとerrorCode変数の操作を除いて、プロシージャを終了させるために使用されるerrorコマンドと同じ(下述を参照)です。
- return
- 現在のプロシージャは完了コードTCL_RETURNで返します。呼び出したプロシージャも同時に終了します。
- break
- 現在のプロシージャは完了コードTCL_BREAKで返します。現在のプロシージャを呼び出したコードのもっとも内側のネストしたループを終了させます。
- continue
- 現在のプロシージャはTCL_CONTINUEで返します。現在のプロシージャを呼び出したコードのもっとも内側のネストしたループにある現在の繰り返しを終了させます。
- value
- Value は整数でなければなりません。これは現在のプロシージャの完了コードとして返されます。
-codeオプションはめったに使われません。これは、新しい制御構造を実現するプロシージャが例外状況を呼び出し側に反映させるために提供されます。
2つの追加オプション、-errorinfoと-errorcodeは、エラーが返される際に追加的な情報を提供するために使われます。これ
らのオプションはcode がerrorでないと無視されます。
-errorinfoオプションはerrorInfo変数のための初期のスタックトレースを指定します。
これが指定されない場合、errorInfoに残されるスタックトレースには、プロシージャへのコールと、スタックの高いレベル(の内容)が含まれるだけで、プロシージャ内で発生したエラーの文脈についてのいかなる情報も含まれません。一般的にinfoの値はcatchコマンドがプロシージャの内部でエラーを補足した後のerrorInfoに残された値から取得されます。
-errorcodeオプションが指定されると、code はerrorCode変数に値を提供します。このオプションが指定されない場合のerrorCodeのデフォルトはNONEです。
break, continue,
error, proc
break, continue,
error, procedure,
return
Copyright © 1993 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.
Copyright © 1995-1997 Roger E. Critchlow Jr.
|