The ON EXCEPTION statement provides a mechanism to trap any error.
To trap an error, enclose a group of statements in a statement block marked with BEGIN and END and add an ON EXCEPTION IN statement at the beginning of the statement block. If an error occurs in the block that follows the ON EXCEPTION statement, you can take recovery action.
Figure 467 shows an ON EXCEPTION statement within a statement block.
BEGIN DEFINE c INT; ON EXCEPTION IN ( -206, -- table does not exist -217 -- column does not exist ) SET err_num IF err_num = -206 THEN CREATE TABLE t (c INT); INSERT INTO t VALUES (10); -- continue after the insert statement ELSE ALTER TABLE t ADD(d INT); LET c = (SELECT d FROM t); -- continue after the select statement. END IF END EXCEPTION WITH RESUME INSERT INTO t VALUES (10); -- fails if t does not exist LET c = (SELECT d FROM t); -- fails if d does not exist END
When an error occurs, the SPL interpreter searches for the innermost ON EXCEPTION declaration that traps the error. The first action after trapping the error is to reset the error. When execution of the error action code is complete, and if the ON EXCEPTION declaration that was raised included the WITH RESUME keywords, execution resumes automatically with the statement following the statement that generated the error. If the ON EXCEPTION declaration did not include the WITH RESUME keywords, execution exits the current block entirely.
Home | [ Top of Page | Previous Page | Next Page | Contents | Index ]