PowerFX V1.0 運用説明書 - Microsoft(R) Windows(R) -
目次 索引 前ページ次ページ

第3章 TCLplus> 3.5 TCLplusのデバッグ方法

3.5.3 エラーメッセージ

TCLplusスクリプトではエラーが発生すると、予約変数errorInfoを出力して終了します。
errorInfoにはエラーの内容とエラーの位置情報が格納されています。
エラーの位置情報は、エラーが発生したコマンドから、実行元のコマンドをさかのぼるように出力されます。
ここではエラーメッセージの見方を説明します。

<ゼロ除算が発生するスクリプト>

#初期値を設定
set i 5
while {1} {
#計算式を出力する。
puts stdout "10*$i"
#演算結果を出力する
puts stdout " = [expr "10.0 / $i"]"
incr i -1
}

上記のスクリプトを実行すると、以下のエラーメッセージが出力されます。

<エラーメッセージ>

divide by zero
while executing
"expr "10.0 / $i""
("while" body line 5)
invoked from within
"while {1} {
#計算式を出力する。
puts stdout "10*$i"
#演算結果を出力する
puts stdout " = [expr "10.0 / $i"]"
inc..."
(file "errorsample.pcl" line 3)

上記のエラーメッセージについて"表3.17 エラーメッセージの説明"で説明します。

[表3.17 エラーメッセージの説明]

NO

エラーメッセージ

解説

divide by zero

最初の数行でエラーの内容を表します。

この例ではゼロ除算が発生しています。

while executing
"expr "10.0 / $i""

<NO.1>の出力後、エラーの発生位置を示す情報が出力されます。

"while exeuting" , "while compiling" , "while invoking" , "invoked from within"は一つ前のメッセージの発生箇所を表しています。

この例ではexprコマンドでエラーが発生したことを表します。

("while" body line 5)

括弧で囲まれた情報は直前のエラーメッセージの補足情報を表します。

この例ではexprコマンドがwhileコマンド5行目に存在することを表します。

invoked from within
"while {1} {
#計算式を出力する。
puts stdout "10*$i"
#演算結果を出力する
puts stdout " = [expr "10.0 / $i"]"
inc..."

<NO.3>がwhileコマンドの中で実行されたコマンドであることを表します。

(file "errortest.pcl line 3)

括弧で囲まれた情報は直前のメッセージの補足情報です。

この例ではwhileコマンドがスクリプトファイル"errortest.pcl"の三行目に存在していることを表します。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005