tcl/tk參考——控制結構catch
名稱
catch - 執行指令碼並捕獲錯誤
語法
catch script ?resultVarName? ?optionsVarName?
描述
catch命令用來防止出現錯誤而導致指令碼執行終止,catch命令可以呼叫Tcl直譯器去執行指令碼,並且能夠正常返回。
如果指令碼產生一個錯誤,catch將返回一個非0的整數,如果沒有捕獲到錯誤就返回0或TCL_OK,Tcl還定義了四種異常程式碼:1(TCL_ERROR)、2(TCL_RETURN)、3(TCL_BREAK)和4(TCL_CONTINUE)。當執行指令碼產生錯誤時就返回TCL_ERROR,其它的異常由return、break和continue命令產生。
如果給出了resultVarName變元,當返回1時,儲存在resultVarName中的為錯誤資訊,如果返回0,儲存在resultVarName中的為指令碼執行結果。
如果給出了optionsVarName變元,變數裡面包含有-code和-level兩個條目,如果返回程式碼不是TCL_RETURN時,-level為0,-code為返回的異常程式碼,當返回程式碼為TCL_RETURN時,-level和-code為其它的值,詳細解釋見return命令。
當返回TCL_ERROR時,三個額外的條目將會新增到optionsVarName中:-errorinfo、-errorcode和-errorline,-errorinfo條目是產生錯誤的資訊,-errorcode條目是關於錯誤的一些額外資訊,儲存為列表方式,-errorline指出了錯誤發生的位置。-errorinfo和-errorcode條目都是最近發生的錯誤並且可以使用::errorInfo和::errorCode。
示例
catch命令可以在if命令中使用。
if { [catch {open $someFile w} fid] } {
puts stderr "Could not open $someFile for writing/n$fid"
exit 1
}
在return命令中有更多的關於catch的示例。
相關文章
- tcl/tk參考——控制結構errorError
- tcl/tk參考——系統相關glob
- tcl/tk例項詳解——catch和errorError
- tcl/tk詳解——glob使用例解
- PE結構各欄位偏移參考
- Tcl/Tk 命令與C/C++的整合研究C++
- tcl/tk例項詳解——glob使用例解
- CloudBeaver 參考架構Cloud架構
- 參考手冊總結
- 政務雲參考架構架構
- 微服務 架構圖 參考微服務架構
- 《網路安全體系結構》一2.5參考資料
- InnoDB 中文參考手冊 --- 11 表和索引結構 (轉)索引
- 全文索引參考總結索引
- [轉]Oracle的異常控制編碼參考Oracle
- 複製管理API參考總結API
- 微信雲開發參考連結
- SOA參考架構的應用示例架構
- FreeWrap工具,將tcl/tk指令碼轉變為可執行檔案指令碼
- MySQL分庫分表總結參考MySql
- vue學習資源(參考連結)Vue
- 控制結構
- 【資料結構&演算法】09-佇列概念&參考原始碼資料結構演算法佇列原始碼
- iOS常見面試題(block,runtime,runloop,類結構)附參考答案iOS面試題BloCOOP
- OSI參考模型和TCP/IP參考模型模型TCP
- javamail參考JavaAI
- SQLAlchemy參考SQL
- 參考地址
- Spring Boot 參考指南(構建系統)Spring Boot
- DOM參考手冊及事件參考手冊事件
- 影片結構化怎麼玩?杉巖給您一份參考答案
- iOS單元測試參考連結整理iOS
- 效能調整手冊和參考總結
- matlab模糊控制工具箱使用和模糊控制pid例項參考Matlab
- WebApiClient效能參考WebAPIclient
- OSI參考模型模型
- Git教程參考Git
- 參考資料