我有以下过程,它基本上在字典中查找几个值并将它们作为列表返回。
proc GetAllow { PID Ply } {
# read a dictonary from a file
catch {
append PlyAndDirXt $Ply "_xt"
append PlyAndDirYt $Ply "_yt"
set x_allow_tens [ dict get $allowables $PID $PlyAndDirXt ]
set y_allow_tens [ dict get $allowables $PID $PlyAndDirYt ]
set allowables [ list $x_allow_tens $y_allow_tens ]
} res
if { $res == 0 } {
return $allowables
}
if { $res != 0 } {
return 999
}
}
据我了解,如果一切正常,“catch”$res 应该是 0 = TCL_OK。在这种情况下,我希望 proc 返回列表 $allowables。如果由于没有匹配的键而在字典中找不到值。我希望它返回 999。但我总是返回 999。我在这里做错了什么?