tcl/tk參考——控制結構error

Augusdi發表於2015-10-10


名稱

error - 產生一個錯誤

語法

error message ?info? ?code?

描述

返回一個TCL_ERROR程式碼並且終止指令碼執行,message儲存錯誤訊息。

直譯器的-errorinfo可選項用來記錄當錯誤發生時堆疊狀況(通俗點說就是發生錯誤的地方),當命令執行時,直譯器會給-errorinfo新增資訊。如果info變元存在,就用來初始化-errorinfo。換句話說,包含error命令的命令不會出現在堆疊記錄上,它的資訊將被info代替。這個用法在catch中非常有用,當捕獲一個不能夠傳遞的錯誤時,info可以用來返回一個堆疊跟蹤資訊來反饋錯誤發生點。

catch {...} errMsg
set savedInfo $::errorInfo
    ...
error $errMsg $savedInfo

當在Tcl8.5或更新的版本中,下面的程式碼將被用於替代:

catch {...} errMsg options
    ...
return -options $options $errMsg

如果code變元存在,它的值就儲存在-errorcode中返回,-errorcode返回一個機器可讀的錯誤描述,察看return幫助以獲取更多的資訊。

示例

如果基本數學操作失敗就產生一個錯誤:

if {1+2 != 3} {
    error "something is very wrong with addition"
}

相關文章