尝试运行此代码:
1 declare
2 hq exception;
3 ll exception;
4 nom number;
5 cursor pq is select count(*) as units from test1;
6 hh pq%ROWTYPE;
7 begin
8 open pq;
9 fetch pq into hh;
10 nom := hh.units;
11 if nom >1 then
12 RAISE hq;
13 else
14 RAISE ll;
15 end if;
16 exception
17 when hq then
18 raise_application_error (-20501 , 'error1');
19 when ll then
20 RAISE_APPLICATION_ERROR (-20500 , 'error2');
21 end;
abc@.US.ORACLE.COM>/
declare
*
ERROR at line 1:
ORA-20501: error1
ORA-06512: at line 18
ORA-06510: PL/SQL: unhandled user-defined exception
为什么我在第1行收到此错误?以及未处理的用户定义的位置 例外?异常处理程序hq和ll在异常部分中定义。 我哪里错了?使用Oracle 9iR2 感谢
答案 0 :(得分:2)
您在异常处理程序(raise_application_error)中自己引发了用户定义的错误。您的代码不会处理此用户定义的错误,因此会抛出未处理的用户定义的异常。