When a custom exception is declared and not handled in the code, raising this exception will cause the error "ORA-06510: PL/SQL: unhandled user-defined exception" in the database or the error "User-defined exception" in Oracle Forms.

It is a good practice to handle custom exceptions.

## Noncompliant Code Example

    DECLARE
      my_exception EXCEPTION;
    BEGIN
      ...
      RAISE my_exception; -- this will cause an "user-defined exception"
    END;

## Compliant Solution

    DECLARE
      my_exception EXCEPTION;
    BEGIN
      ...
      RAISE my_exception;
    EXCEPTION
      WHEN my_exception THEN
        ...
    END;

This check will also trigger a violation if the exception is handled by a OTHERS handler and it has a reference to SQLERRM. In this case, the SQLERRM will return "User-defined exception", which is not very useful.

    DECLARE
      my_exception EXCEPTION;
    BEGIN
      ...
      RAISE my_exception;
    EXCEPTION
      WHEN OTHERS THEN
        log(SQLERRM);
    END;