MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Tcl Built-In Commands                                   catch(1T)





NAME
     catch - Evaluate script and trap exceptional returns

SYNOPSIS
     catch script ?varName?



DESCRIPTION
     The catch command may be used to prevent errors from  abort-
     ing command interpretation.  The catch command calls the Tcl
     interpreter  recursively  to  execute  script,  and   always
     returns  without  raising an error, regardless of any errors
     that might occur while executing script.

     If script raises an error,  catch  will  return  a  non-zero
     integer  value  corresponding to the exceptional return code
     returned by evaluation of script.  Tcl  defines  the  normal
     return  code  from  script  evaluation  to  be  zero (0), or
     TCLOK.  Tcl also defines four exceptional return  codes:  1
     (TCLEROR),   2   (TCLRETURN),   3   (TCLBREAK),   and  4
     (TCLCONTINUE).  Errors during evaluation of  a  script  are
     indicated  by  a return code of TCLEROR.  The other excep-
     tional return codes are returned by the return,  break,  and
     continue  commands  and in other special situations as docu-
     mented.  Tcl packages can define new  commands  that  return
     other  integer  values  as return codes as well, and scripts
     that make use of the return  -code  command  can  also  have
     return codes other than the five defined by Tcl.

     If the varName argument is given, then the variable it names
     is  set  to  the  result of the script evaluation.  When the
     return code from the script  is  1  (TCLEROR),  the  value
     stored in varName is an error message.  When the return code
     from  the  script  is  0  (TCLOK),  the  value  stored   in
     resultVarName is the value returned from script.

     If script does not raise  an  error,  catch  will  return  0
     (TCLOK)  and  set  the  variable to the value returned from
     script.

     Note that catch catches all exceptions, including those gen-
     erated  by  break  and continue as well as errors.  The only
     errors that are not caught are syntax errors found when  the
     script  is compiled.  This is because the catch command only
     catches errors during runtime.  When the catch statement  is
     compiled,  the  script  is  compiled  as well and any syntax
     errors will generate a Tcl error.





Tcl                     Last change: 8.0                        1






Tcl Built-In Commands                                   catch(1T)



EXAMPLES
     The catch command may be used in an if to  branch  based  on
     the success of a script.
          if { [catch {open $someFile w} fid] } {
              puts stderr "Could not open $someFile for writing\n$fid"
              exit 1
          }

     The catch command will not  catch  compiled  syntax  errors.
     The first time proc foo is called, the body will be compiled
     and a Tcl error will be generated.
          proc foo {} {
              catch {expr {1 ]- }}
          }


SEE ALSO
     break(1T), continue(1T), error(1T), return(1T), tclvars(1T)


KEYWORDS
     catch, error

ATRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:

     
       ATRIBUTE TYPE     ATRIBUTE VALUE
    
     Availability         SUNWTcl        
    
     Interface Stability  Uncommitted    
    

NOTES
     Source for Tcl is available on http:/opensolaris.org.


















Tcl                     Last change: 8.0                        2



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™