Provided by: manpages-zh_1.5.1-1_all bug

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  捕获所有的例外,如同错误一样,包括了由  breakcontinue
       生成的例外。唯一不捕获的错误是在编译脚本时发现的语法错误。这是因为
       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