When enabled, and the STOP statement executes, the AVM throws an instance of this Progress.Lang.Stop class and raises the STOP condition. 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 cancels the dialog box displayed during this waiting period
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. The public properties of this class and its subclasses provide information on the context where this STOP condition was raised.
You cannot inherit from this class.
Serializable:
Yes
Constructors
The class constructors are reserved for system use only.
This class does not contain methods (beyond those it inherits from its base class).
Public Events
This class does not contain events.
Notes
In order to enable the AVM to throw Progress.Lang.Stop objects, you must specify the Catch STOP (-catchStop) startup parameter with the value 1 (-catchStop 1). Otherwise, the AVM raises the STOP condition only, without throwing the associated object.
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.
Note: You can instead trap the STOP condition using the ON STOP phrase on an associated block, but this does not tell you anything about what caused the AVM to raise the STOP condition itself.
Like any other class-based object that is no longer referenced, the AVM automatically deletes Stop objects using garbage collection.