When the AVM executes the STOP statement, it creates an
instance of the Progress.Lang.Stop class. Progress.Lang.Stop is also the immediate super class for the
following built-in objects that the AVM throws in response to the associated
STOP conditions:
-
Progress.Lang.LockConflict — Thrown when a time-out
occurs while waiting for a record lock or when the user indicates they want to stop
waiting
-
Progress.Lang.StopAfter — Thrown when a time-out occurs
in response to the STOP-AFTER setting on a DO,
FOR, or REPEAT block
-
Progress.Lang.UserInterrupt — Thrown when the user
interrupts the AVM by pressing the OS interrupt key
You can therefore catch instances of Progress.Lang.Stop and any of its subclasses in a CATCH block
to trap each associated STOP condition.
You cannot inherit from this class.
Constructors
The class constructors are reserved for system use only.
Interfaces
This class does not implement interfaces (beyond those it inherits from its
base class).
Public Methods
This class does not contain methods (beyond those it inherits from its base
class).
Public Events
This class does not contain events.
Notes
- To enable older behavior and prevent the AVM from throwing Progress.Lang.Stop objects, specify the Catch STOP (-catchStop) startup parameter with the value 0 (-catchStop 0).
- By catching a Stop object with a
CATCH block and testing the object's ultimate derived class type, you
can identify what caused the AVM to raise the STOP condition and throw
the object in the first place.
- The CallStack property is always populated for a STOP
condition, so there is no need to set the ERROR-STACK-TRACE attribute of
the SESSION handle.
- Like any other class-based object that is no longer referenced, the AVM
automatically deletes Stop objects using garbage collection.