NAME¶
catch -
对脚本求值并追踪异常返回
总览 SYNOPSIS¶
catch script ?
varName?
描述 DESCRIPTION¶
catch
命令被用于防止出错导致的终止命令解释。
Catch 递归的调用 Tcl
解释器来执行
script,并且不顾在执行
script
期间可能发生的任何错误,它总是返回而不引发(raise)任何错误。
如果
script
引发一个错误,
catch
将返回一个非零的整数值,相应于异常返回代码中的一个(参见
tcl.h
来找到代码值的定义)。如果给出了
varName
参数,则它所指名的变量被设置成从解释
script 得到的错误消息。
如果
script
不引发任何错误,
catch
将返回
0(TCL_OK)并设置这个变量为脚本返回的值。
注意
catch
捕获所有的例外,如同错误一样,包括了由
break 和
continue
生成的例外。唯一不捕获的错误是在编译脚本时发现的语法错误。这是因为
catch
命令只捕捉运行时的错误。当
catch
语句被编译后,脚本同样要被编译,并且任何错误都将生成一个
Tcl 错误。
EXAMPLES¶
catch 命令可在一个
if
中使用,基于一个脚本的(是否)成功而(进行)分支(branch)。
if { [catch {open $someFile w} fid] } {
puts stderr "Could not open $someFile for writing\n$fid"
exit 1
}
catch
命令不捕捉编译后的语法错误。第一次调用
proc
foo
时,(过程)体将被编译并且生成一个
Tcl 错误。
proc foo {} {
catch {expr {1 +- }}
}
关键字 KEYWORDS¶
catch, error
[中文版维护人]¶
寒蝉退士
[中文版最新更新]¶
2001/06/21
《中国 Linux 论坛 man 手册页翻译计划》:¶
http://cmpp.linuxforum.net