Raising Exceptions
There are three ways that an exception may be raised in your application:
The database 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.
I’ve already looked at how the database 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:
RAISEexception_name; RAISEpackage_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(30);
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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access