在我的代碼中,我使用了環境變量,但是如果它(env.var)不存在,我會收到錯誤消息NAME_ENV_VAR:沒有這樣的變量,我的腳本停止執行。 例如,在該行如何避免錯誤:沒有這樣的環境變量?
myeval $env($File)
我收到一個錯誤:
can't read "env(NIKE_TECH_DIR)": no such variable
while executing
"myeval $env($File)"
(procedure "chooseRelevantFiles" line 39)
invoked from within
"chooseRelevantFiles $::GlobalVars::reqStage"
(file "/vobs/tavor/src/Scripts/ReproduceBug.tcl" line 575)
我怎樣才能避免這種錯誤,並繼續執行我的腳本?
+1一般而言,我想避免檢查,如果事情存在於系統中,因爲比賽條件,但在這種情況下,它可能是適當的 –
我喜歡'upvar 0 :: env($ stuff)myvar;如果{[info exists myvar]} {...'成語略勝一籌。但這一切都取決於個人的品味。 – kostix
@jk .:捕捉錯誤比避免它慢得多--Tcl的錯誤處理是_purposefully_不是超快速的 - 但是':: env'是一個特殊的情況,無論你做什麼都很慢(因爲它是流程全局狀態,可以在Tcl的控制範圍之外改變)。 –