Before APEX 4.1 you could still use a similar feature however it was an unsupported variable in the apex_application package called g_unrecoverable_error.
I've included an example below of the before vs. after 4.1 ways to stop the APEX engine.
-- Pre-APEX 4.1 (not supported) ... owa_util.redirect_url('http://www.clarifit.com'); apex_application.g_unrecoverable_error:= true; -- End APEX session -- APEX 4.1 and above (supported) ... owa_util.redirect_url('http://www.clarifit.com'); apex_application.stop_apex_engine; -- End APEX session
For those who have used the apex_application.g_unrecoverable_error variable in some of your applications you should go back and upgrade to the new procedure. For more information about the stop_apex_engine procedure please read the APEX documentation.
Thanks to Jason Long for posting the following comment about the differences between apex_application.g_unrecoverable_error and stop_apex_engine. Be sure to read it carefully because in the right conditions switching between the two calls can have significant impacts.
There appear to be a couple gotchas with simply replacing g_unrecoverable_error with stop_apex_engine.
1. If there is any PL/SQL code immediately following the g_unrecoverable_error it will still be executed. It looks like stop_apex_engine actually exits out of the routine.
2. It looks like stop_apex_engine will roll back any SQL inserts/updates/deletes that occur in the routine, where as g_unrecoverable_error allow them to be committed.