Use Catch STOP (-catchStop) to specify whether the AVM behaves in a new way when a STOP condition is raised. The new behavior involves being able to catch stop objects and run FINALLY blocks.

Operating system and syntax UNIX / Windows -catchStop n
Use with Maximum value Minimum value Single-user default Multi-user default
Client Session 1 0 1 1
n

Indicates the AVM behavior when a STOP condition is raised:

  • 0 — The AVM does not throw stop objects, execute relevant CATCH blocks, or execute FINALLY blocks, when a STOP condition is raised.
  • 1 — The AVM throws an appropriate stop object when a STOP condition is raised, executes any appropriate CATCH blocks in response, and executes FINALLY blocks. This is the default.

To enable the handling of stop objects in the AVM, you must recompile any existing source code that contains a CATCH block for Progress.Lang.Error, Progress.Lang.SysError, or Progress.Lang.ProError, and of course, you must compile any new code with a CATCH block for a stop object. Code that references stop objects will compile successfully regardless of the value of -catchStop.

Once the relevant code is compiled, if you specify -catchStop 0, any CATCH blocks that work with stop object references are ignored by the AVM at run time.

For more information about STOP conditions and stop objects and how the AVM generates and responds to them, see the descriptions of the ON STOP phrase and the CATCH statement in the ABL Reference and the description of STOP handling in ABL Error Handling.