用户定义的例外
顾名思义,用户创建了用户定义的异常。如果你想创建自己的例外,你必须:
- 声明异常
- 从你的程序中提升它
- 创建合适的异常处理程序来捕获他。
例
我想更新所有工人的工资。但如果没有工人,就提出异常。
create or replace procedure update_salary
is
    no_workers exception;
    v_counter number := 0;
begin
    select count(*) into v_counter from emp;
    if v_counter = 0 then
        raise no_workers;
    else
        update emp set salary = 3000;
    end if;
    exception
        when no_workers then
            raise_application_error(-20991,'We don''t have workers!');                
end;
/
raise 是什么意思?
当有需要时,数据库服务器会自动引发异常,但如果需要,可以使用 raise 明确引发任何异常。
程序 raise_application_error(error_number,error_message);
- error_number 必须介于 -20000 和 -20999 之间
- 发生错误时显示的 error_message 消息。