У меня есть следующий процесс, который в основном смотрит вверх по паре значений в диктаторе и возвращает их в виде списка.Проблема с уловкой в простой tcl proc
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
}
}
Как я понимаю, "поймать", если все в порядке $ Рез должен быть 0 = TCL_OK. В этом случае я бы хотел, чтобы proc возвращал список $ allowables. Если значения не найдены в dict из-за отсутствия соответствующих ключей. Я бы хотел, чтобы он вернул 999. Но я всегда возвращаю 999. Что я здесь делаю неправильно?