PL/SQL コードを調べるには、Exhibit をご覧ください。
SET serveroutput ON
DECLARE
past_due EXCEPTION;
acct_num NUMBER;
BEGIN
DECLARE
past_due EXCEPTION;
acct_num NUMBER;
due_date DATE := sysdate -1;
todays_date DATE := sysdate;
BEGIN
IF due_date < todays_date THEN
raise past_due;
END IF;
END;
EXCEPTION
WHEN past_due THEN
dbms_output.put_line('handling past_due exeption.');
WHEN OTHERS THEN
dbms_output.put_line('could not recognize rxception.');
END;
コードの実行について正しい記述はどれですか?
A. コードで発生した例外は、PAST_DUE 例外の例外ハンドラによって処理されます。
B. サブブロックで同様の名前の例外を宣言できないため、実行されません。
C. サブブロックに例外ハンドラがないため、サブブロックで PAST_DUE 例外が発生すると、プログラムが突然終了します。
D. 囲んでいるブロックによって発生した PAST_DUE 例外は、外側のブロックには伝播されず、WHEN OTHERS 例外ハンドラーによって処理されます。
ダンプでは答えはCでしたが、Dだと思います