【发布时间】:2013-07-25 12:09:39
【问题描述】:
查看展览以检查 PL/SQL 代码。
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
【问题讨论】:
-
哦,对不起,我现在添加答案@JoachimIsaksson