ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



catch(n)                                    Tcl Built-In Commands                                   catch(n)



____________________________________________________________________________________________________________

NAME
       catch - Evaluate script and trap exceptional returns

SYNOPSIS
       catch script ?varName?
____________________________________________________________________________________________________________


DESCRIPTION
       The  catch  command  may be used to prevent errors from aborting command interpretation.  Catch 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 one of the
       exceptional return codes (see tcl.h for the definitions of code values).  If the varName argument  is
       given, then the variable it names is set to the error message from interpreting script.

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

       Note that catch catches all exceptions, including those generated 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.


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
       error(n), break(n), continue(n)


KEYWORDS
       catch, error



Tcl                                                  8.0                                            catch(n)

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.