Quando uma exceção é declarada e não é tratada no código, lançar essa exceção causa o erro "ORA-06510: PL/SQL: unhandled user-defined exception" no banco de dados ou o erro "User-defined exception" no Oracle Forms.
É uma boa prática sempre tratar exceções personalizadas.
DECLARE my_exception EXCEPTION; BEGIN ... RAISE my_exception; -- isso causará um "user-defined exception" END;
DECLARE my_exception EXCEPTION; BEGIN ... RAISE my_exception; EXCEPTION WHEN my_exception THEN ... END;
Essa verificação também registrará uma violação se a exceção é tratada por um OTHERS e que tem uma referência a SQLERRM. Nessa situação, a variável SQLERRM retornará "User-defined exception", o que não é muito útil.
DECLARE my_exception EXCEPTION; BEGIN ... RAISE my_exception; EXCEPTION WHEN OTHERS THEN log(SQLERRM); END;