pl/sql には、内部の begin ブロック、end ブロック、および「Exception Others」ブロックがいくつかあります。内部ブロックからユーザー定義の例外をスローすると、内部の「Exception Others」ブロックではなく、最後の「Exception userdef」ブロックでこの例外をキャッチしたいだけです。何か案が?
質問する
306 次
2 に答える
0
/* package */
CREATE OR REPLACE PACKAGE exceptions_pkg AS
user_defined_exception EXCEPTION;
END exceptions_pkg;
/* block */
DECLARE
l_var1 NUMBER;
BEGIN
DBMS_OUTPUT.PUT_LINE('one');
DECLARE
l_var2 NUMBER;
BEGIN
DBMS_OUTPUT.PUT_LINE('two');
IF 1 < 2 THEN
RAISE exceptions_pkg.user_defined_exception;
END IF;
DBMS_OUTPUT.PUT_LINE('three');
END;
DBMS_OUTPUT.PUT_LINE('four');
EXCEPTION
WHEN exceptions_pkg.user_defined_exception THEN
DBMS_OUTPUT.PUT_LINE('five');
END;
-- anonymous block completed
/*
one
two
five
*/
于 2013-06-14T14:38:07.810 に答える