The original ABL condition handling model consisted of the following subset of the existing error handling constructs:

  • NO-ERROR
  • The ON phrase (flow of control directives), but without the THROW option
  • RETURN ERROR

These constructs are referred to as Traditional Error Handling.

In more recent OpenEdge versions, more modern error handling constructs were added. These consist of:
  • CATCH blocks
  • The ON THROW directive
  • The UNDO, THROW statement
  • Error and Stop objects
  • FINALLY blocks

These constructs are referred to collectively as Structured Error Handling.

These two models are not independent of each other. All constructs work seamlessly together, and in some cases, depend on each other for context.