Setup: Forms 9i using OC4J to support web stuff on 9i DB (not AS)

I am forcing an error (for testing) but I can not get the error info into my variables. If I comment out the EXCEPTION code Oracle dutifully reports that I had an unhandled exception and tells me what it was. When I use the EXCEPTION handler all the ERROR vaules are NULL or 0. I think I must be doing something stupid but I can not figure out what. Thanks for your help.

Here is the code:

DECLARE
alert_ret NUMBER;
enum NUMBER;
etxt VARCHAR2(80);
etyp VARCHAR2(3);
mesg VARCHAR2(256);
BEGIN
SELECT mdm_roleid_s.NEXTVAL
INTO :role_id
FROM dual;

EXCEPTION
WHEN OTHERS THEN
enum := ERROR_CODE;
message('ERROR_TEXT is '|| ERROR_TEXT);
etxt := ERROR_TEXT;
message('etxt is '|| etxt);
etyp := ERROR_TYPE;
message('etyp is '|| etyp);
mesg := 'Problem with mdm_roleid_s sequence. ' ||
etyp||'-'||TO_CHAR(enum)||': '||etxt;
set_alert_property('ERROR', title, 'TITLE');
set_alert_property('ERROR', ALERT_MESSAGE_TEXT, mesg);
alert_ret := SHOW_ALERT('ERROR');
RAISE FORM_TRIGGER_FAILURE;
END;

:created_by_id := TO_NUMBER(:Parameter.operator_id);
:creation_date := SYSDATE;