在 Tcl 代码中绕过退出

bypass exit in code in Tcl

让我们假设我有 proc foo。过程代码是:

proc foo { argy } {
   if { $argy == 1 } { exit 1 }
}

我想调用 foo,但是有调用代码 bypass/ignore 退出命令,而不是退出 TCL。即:此代码:

foo 1
puts "bar"

应该产生:

>bar

有什么想法吗?
谢谢。

使用 rename 覆盖默认行为。

rename exit _exit
proc exit {{status ""}} {}

保留上面的代码,在你的代码中第一次出现退出命令之前。即,即使在代码的开头,exit 也会被此虚拟 exit 过程替换。