TCL catch 详解

上一篇 / 下一篇  2009-07-06 22:05:57 / 个人分类:TCL

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 { [catch{open $someFile w} fid] } {
puts stderr "Could not open $someFile for writing\n$fid"
exit 1
}
return命令中有更多的关于catch的示例。

TAG:

 

评分:0

我来说两句

日历

« 2024-04-13  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 30481
  • 日志数: 37
  • 建立时间: 2008-07-09
  • 更新时间: 2009-07-23

RSS订阅

Open Toolbar