up previous next
try    --    try command sequence, catch any errors


Syntax
Try C1 UponError E Do C2 EndTry
  where C1, C2 are sequences of commands and E is a variable identifier.

Description
Usually, when an error occurs during the execution of a command, the error is automatically propagated out of the nesting of the evaluation. This can be prevented with the use of Try..UponError.

If an error occurs during the execution of the commands C1, then it is captured by the command UponError and assigned to the variable E, and the commands C2 are executed; the string inside E may be retrieved using GetErrMesg . If no error occurs then the variable E and the commands C2 are ignored.

Example
/**/  -- Equality function allowing mixed types:
/**/  Define AreEqual(A,B)
/**/    Try
/**/      Return A = B;
/**/    UponError E Do
/**/      Return false;
/**/    EndTry;
/**/  EndDefine;

/**/  AreEqual(0, "zero");
false
/**/  AreEqual(1+2, 3);
true

See Also