3

Tcl catchコマンドのヘルプページに基づいて、TCL_OKまたはのような指定された結果変数を使用しようとしましたTCL_ERROR。ただし、これらの変数にアクセスする方法の構文にはいくつかの問題があります。マジックナンバーの代わりにこれらの変数を使用するコード例を持っている人はいますか?

4

1 に答える 1

3

私の経験から、名前ではなく数値を使用する必要があります。名前は C API でプログラミングするときに使用されますが、Tcl からは番号のみを使用します。

set code [catch {
    my script
} result]
switch -exact -- $code {
    0 { 
        puts "normal command completion"
    }
    1 { 
        puts "code threw an error (ie: error 'wtf')"
    }
    2 { 
        puts "code used 'return' command normally"
    }
    3 { 
        puts "code used 'break' command"
    }
    4 { 
        puts "code used 'continue' command"
    }
}
于 2012-08-15T20:48:18.560 に答える