In OpenEdge Release 12.0 STOP conditions behave more like errors. When a STOP condition is raised, the AVM throws an appropriate stop object, executes any appropriate CATCH blocks in response, and executes FINALLY blocks. Even if the STOP condition is not handled in the current block, the AVM runs a local FINALLY block. There are still a few, rare conditions that cause STOP to bubble up to the top of a transaction block, or out to a layer that does not access the database, and not abide by any ON STOP or relevant CATCH blocks along the way. For those conditions, FINALLY blocks along that path will not run either.

In 11.7 you had to explicitly enable this behavior by using the (-catchStop) startup parameter. This is now the default in 12.0. To revert to the previous behavior, use -catchStop 0.

For more information, see CATCH Blocks and FINALLY Blocks.

For more information about the -catchStop parameter, see Catch STOP (-catchStop).