declare
-- 自定义异常名称
NO_CONFIG_EXCEPTION exception;
v_sqlcode varchar2(20); -- 错误码
v_sqlerrm varchar2(300); -- 错误信息
-- 告诉编译器将异常名 与 ORACLE 错误码结合起来
pragma exception_init(NO_CONFIG_EXCEPTION, -20001);
begin
raise_application_error(-20001, 'Hello Exception Message');
exception
when NO_CONFIG_EXCEPTION then
v_sqlcode := sqlcode;
v_sqlerrm := sqlerrm;
dbms_output.put_line(v_sqlcode);
dbms_output.put_line(v_sqlerrm);
end;
使用pragma exception_init可以将异常名称和任何的错误码结合起来。这样就可以使用自定义的异常名去捕获处理指定的异常。
抛出异常我们可以用 raise 实现,语法如下
raise 异常名称
也可以使用raise_application_error,语法如下:
raise_application_error(errorNumber, errorMsg);
但是使用raise_application_error,则只能抛出自定义的异常,也就是数值有一定的范围限制,errorNumber必须是-20000到-20999之间,errorMsg是自定义的错误信息。