tcl tk參考 控制結構catch

2021-04-16 01:03:11 字數 1637 閱讀 6680

. .

catch - 執行指令碼並捕獲錯誤

catchscript ?resultvarname? ?optionsvarname?

catch命令用來防止出現錯誤而導致指令碼執行終止,catch命令可以呼叫tcl直譯器去執行指令碼,並且能夠正常返回。

如果指令碼產生乙個錯誤,catch將返回乙個非0的整數,如果沒有捕獲到錯誤就返回0tcl_ok,tcl還定義了四種異常**:1tcl_error)、2tcl_return)、3tcl_break)和4tcl_continue)。當執行指令碼產生錯誤時就返回tcl_error,其它的異常由returnbreakcontinue命令產生。

如果給出了resultvarname變元,當返回1時,儲存在resultvarname中的為錯誤資訊,如果返回0,儲存在resultvarname中的為指令碼執行結果。

如果給出了optionsvarname變元,變數裡面包含有-code-level兩個條目,如果返回**不是tcl_return時,-level0-code為返回的異常**,當返回**為tcl_return時,-level-code為其它的值,詳細解釋見return命令。

當返回tcl_error時,三個額外的條目將會新增到optionsvarname中:-errorinfo-errorcode-errorline-errorinfo條目是產生錯誤的資訊,-errorcode條目是關於錯誤的一些額外資訊,儲存為列表方式,-errorline指出了錯誤發生的位置。-errorinfo-errorcode條目都是最近發生的錯誤並且可以使用::errorinfo::errorcode

catch命令可以在if命令中使用。

if  fid] }
return命令中有更多的關於catch的示例。

tcl tk參考 控制結構update

update 處理掛起的事件和空閒 update?idletasks?這個命令用來給應用程式 更新 進入事件迴圈直到所有掛起的事件和空閒 都執行完畢。如果指定idletasks,就不處理新的事件或錯誤,只有空閒 被呼叫,這就導致操作被延遲了,就像顯示更新和視窗設計,會被立刻執行。當應用程式的狀態發生...

tcl tk參考 控制結構return

return 從程序中返回或者返回乙個值return?result?return?codecode?result?return?option value result?最簡單的用法,return命令在程式體內直接使用而不帶任何可選項,這樣將會使過程立刻返回。如果有 result變元,過程就返回 re...

tcl tk參考 控制結構foreach

foreach 反覆迴圈操作乙個或多個列表的每個元素foreachvarname list body foreachvarlist1 list1 varlist2 list2 body foreach命令執行乙個迴圈,迴圈的變數是乙個或多個列表的元素。最簡單的情況下是乙個迴圈變數 varname和乙...