System errors may be generated directly by the AVM or they may be caught as an object and rethrown. You can also throw an instance of a custom application error object. Both techniques are discussed in detail in Raise Conditions.

In either case, you can choose to handle the thrown object by using NO-ERROR. Any error messages in the object are transferred to the ERROR-STATUS system handle, the ERROR-STATUS:ERROR is set to TRUE, and the error object instance is garbage collected. Any custom information that might have been in the error object is lost. You can then handle the information in the same way that you would for a condition generated any other way.