我希望能够确保在退出 Tcl 进程时执行操作。例如,我需要执行如下操作:
proc foo {} {
variable var
set saved $var
# some stuff
if {$failed} {
set var $saved
return
}
# more stuff
set var $saved
}
有没有一种简单的方法可以做到这一点,这样我就不必在每次返回时重复“退出”代码?从概念上讲:
proc foo {} {
variable var
set saved $var
set do-at-return {set var $saved}
# some stuff
if {$failed} {
return
}
# more stuff
}
do-at-return
每次退出时都会执行where foo
。
您可能可以使用“离开”执行跟踪来做一些复杂的事情,但更简单的方法是将主体的相关部分包装在 try/finally 语句中: