3

根据 Tcl catch命令的帮助页面,我尝试使用指定的结果变量,例如TCL_OKor 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 回答