8.2 The Exception Section

Chapter 8
Exception Handlers
 

A PL/SQL block (of which procedures, functions, and anonymous blocks are all instances) consists of up to four parts: the header, declaration section, execution section, and exception section, as shown in the following anonymous block:

DECLARE    ... declarations ... BEGIN    ... executable statements ... [ EXCEPTION    ... exception handlers ... ] END;

When an exception is raised within the execution section of a PL/SQL block, control passes to the exception section. PL/SQL then scans through the exception handlers to see if that exception is handled.

The syntax for an exception section follows:

EXCEPTION    WHEN exception_name [ OR exception_name ... ]    THEN       <executable statements> END;

You can have multiple exception handlers in a single exception section. The exception handlers are structured much like a conditional CASE statement, as shown below:

The Exception Section

An English-like Translation

EXCEPTION    WHEN NO_DATA_FOUND    THEN       executable_statements1;

If the NO_DATA_FOUND exception was raised, then execute the first set of statements.

   WHEN payment_overdue    THEN       executable_statements2;

If the payment is overdue, then execute the second set of statements.

   WHEN OTHERS    THEN       executable_statements3; END;

If any other exception is encountered, then execute the third set of statements.

An exception is handled if an exception that is named in a WHEN clause matches the exception that was raised. Notice that the WHEN clause traps errors only by exception name, not by error codes. If a match is found, then the executable statements associated with that exception are run. If the exception that has been raised is not handled or does not match any of the named exceptions, the executable statements associated with the WHEN OTHERS clause -- if present -- will be run.

The WHEN OTHERS clause is optional; if it is not present, then any unhandled exception is immediately raised in the enclosing block, if any.

If the exception is not handled by any PL/SQL block, then the error number and message are presented directly to the user of the application. The exception is, in other words, unhandled and it disrupts the execution of the application.


8.1 Why Exception Handling?8.3 Types of Exceptions

Copyright (c) 2000 O'Reilly & Associates. All rights reserved.



Oracle PL/SQL Programming
Oracle PL/SQL Programming: Covers Versions Through Oracle Database 11g Release 2 (Animal Guide)
ISBN: 0596514468
EAN: 2147483647
Year: 2004
Pages: 234
Authors: Steven Feuerstein, Bill Pribyl
BUY ON AMAZON

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net