用户定义的例外

顾名思义,用户创建了用户定义的异常。如果你想创建自己的例外,你必须:

  1. 声明异常
  2. 从你的程序中提升它
  3. 创建合适的异常处理程序来捕获他。

我想更新所有工人的工资。但如果没有工人,就提出异常。

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 消息。