O'Reilly logo

Oracle PL/SQL Programming, Third Edition by Bill Pribyl, Steven Feuerstein

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Raising Exceptions

There are three ways that an exception may be raised in your application:

  • Oracle might raise the exception when it detects an error.

  • You might raise an exception with the RAISE statement.

  • You might raise an exception with the RAISE_APPLICATION_ERROR built-in procedure.

We’ve already looked at how Oracle raises exceptions. Now let’s examine the different mechanisms you can use to raise exceptions.

The RAISE Statement

Oracle offers the RAISE statement so that you can, at your discretion, raise a named exception. You can raise an exception of your own or a system exception. The RAISE statement can take one of three forms:

RAISE exception_name;
RAISE package_name.exception_name;
RAISE;

The first form (without a package name qualifier) can be used to raise an exception you have defined in the current block (or an outer block containing that block) or to raise a system exception defined in the STANDARD package. Here are two examples, first raising a programmer-defined exception:

DECLARE
   invalid_id EXCEPTION; -- All IDs must start with the letter 'X'.
   id_value VARCHAR2;
BEGIN
   id_value := id_for ('SMITH');
   IF SUBSTR (id_value, 1, 1) != 'X'
   THEN
      RAISE invalid_id;
   END IF;
   ...
END;

And then you can always raise a system exception as needed:

BEGIN
   IF total_sales = 0
   THEN
      RAISE ZERO_DIVIDE; -- Defined in STANDARD package
   ELSE
      RETURN (sales_percentage_calculation  (my_sales, total_sales));
   END IF;
END;

The second form does require a package name qualifier. If an exception has been ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required