TCL catch 详解
上一篇 /
下一篇 2009-07-06 22:05:57
/ 个人分类:TCL
catch - 执行脚本并捕获错误
catchscript. ?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的示例。
收藏
举报
TAG: