Tcl WrongNumArgs标准错误信息到本地

时间:2013-12-06 11:51:08

标签: tcl

如果我使用不带参数的proc名称

,如何将标准错误消息传递到本地消息

我想要decalre我自己的错误信息,而不是像

这样的全局错误消息
proc adder {a b} { 
    global errorInfo 
    puts "The stack trace was this:\n$errorInfo" 
    puts "I got an error in an event: adder arguments $a $b" 
}

- >

adder
Error: wrong # args: should be "adder a b"
# (TCL) (this one is Standard error message)

我需要上面的错误消息应为“Error in selecting arguments ex: adder a b

1 个答案:

答案 0 :(得分:0)

要使用过程获取自定义参数处理,请使用args捕获所有参数,然后自行进行处理。

proc adder {args} {
    if {[llength $args] != 2} {
        return -code error "Error in selecting arguments ex: adder a b"
    }
    lassign $args a b
    # ...
}

如果您使用的是Tcl 8.4,请使用此代替lassign $args a b

foreach {a b} $args break

(你可以使用一个空体而不是break,但是如果你有更多的参数比你预期的那样,这是一个很好的习惯。这里不会发生{{1检查,但良好的习惯是良好的习惯!)