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.

## Código em desconformidade

    DECLARE
      my_exception EXCEPTION;
    BEGIN
      ...
      RAISE my_exception; -- isso causará um "user-defined exception"
    END;

## Código correto

    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;