异常

异常处理1

declare
  num1 number := 1;
  num2 number := 0;
  my_exce exception;   --定义错误类型
begin
  if num2 = 0 then
    raise my_exce;     --自定义错误
  end if;
  num1 := num1 / num2;
exception
  when my_exce then    --自定义错误处理
    dbms_output.put_line(sqlcode || '===' || sqlerrm);
    dbms_output.put_line('自定义 错误');
  when others then
    dbms_output.put_line(sqlcode || '===' || sqlerrm);
    dbms_output.put_line('除零错误');
end;

异常处理2

declare
  num1 number := 1;
  num2 number := 0;
begin
  if num2 = 0 then
    raise_application_error(-20991, '部门代码为空'); --自定义异常错误消息
    --RAISE_APPLICATION_ERROR(error_number,error_message,[keep_errors] );--keep_errors 为可选
    --error_number 是从 –20,000 到 –20,999 之间的参数
    --error_message 是相应的提示信息(< 2048 字节)
  end if;
  num1 := num1 / num2;
exception
  when others then
    dbms_output.put_line(sqlcode || '===' || sqlerrm);
    dbms_output.put_line('除零错误');
end;