ページの先頭行へ戻る
Systemwalker Centric Manager API・スクリプトガイド

6.3.3 catch(スクリプト行を実行し処理例外をトラップする)

機能説明

スクリプト行を実行して処理例外をトラップします。

スクリプト実行時の処理例外とは、スクリプトの処理がそこで打ち切られ、プロセス自体が強制終了されるエラーです。このようなエラーが発生する例として、実行中のスクリプトに文法エラーや値未設定の変数に対する変数置換のほかに、ファイルオープン時のエラー(openコマンド)や、実行プロセスの終了コードが0以外(execコマンド)など、実行時の条件によって発生するものがあります。

catchコマンドはこのような処理例外の発生時に、独自のリカバリ処理を行い、スクリプトのプロセスが終了するのを防ぐために使用します。

記述形式

catch {script} 【varname

オプション

{script}

実行するスクリプトコマンド部分です。改行またはセミコロンで区切ることにより複数のコマンドが記述できます。

varname

処理例外が発生した場合にその原因を示すエラーテキストを格納する変数名です。省略時は、エラーテキストは格納されません。

復帰値

0:

処理例外は発生しませんでした。

0以外:

処理例外が発生しました。

この場合、グローバル変数errorCodeに、詳細情報として以下の値が格納されます。

使用例

ファイルを読み込み用にオープンし、失敗した場合は標準入力からの読み込みをする。

if {[catch {
      set file [open data.txt r]
    }]} {
      set file "stdin"
}
gets $file buf
if {$file != "stdin"} {
      close $file
}

実行結果/出力形式

なし