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