自定义异常处理

如果你想在某个特定事件发生时向应用程序的用户发出一些警告信息,而事件本身不会抛出Oracle内部异常,这个异常是属于应用程序的特定异常,那么就需要自定义异常。

用户定义的异常错误是通过显式使用raise语句来触发的,当引发一个异常错误时,控制就转向到Exception块异常错误部分,执行错误处理代码。

处理步骤:
1:在PL/SQL块的声明部分定义异常情况:
异常情况 exception
2:raise 异常情况的名称
3:在PL/SQL块的异常情况处理部分对异常情况做出相应的处理。

示例:

Declare  
   v_empno emp.empno%Type:=&empno;
   e_no_result exception;
begin
   update emp set sal =sal+100 where empno=v_empno;
   if sql%notfound then
     raise e_no_result;
   else
     commit;
   end if;

Exception
    when e_no_result then
      DBMS_OUTPUT.put_line('数据更新失败!');
    when others then
      DBMS_OUTPUT.put_line('其他错误!');
end;

在PL/SQL中使用SQLCODE和SQLERRM的使用
SQLCODE是取得错误号 SQLERRM是取得错误信息

多用于when others then这个分支

RAISE_APPLICATION_ERROR
该过程用于在PL/SQL子程序中自定义错误信息。

语法格式:

raise_application_error(error_number,message);
error_number:用于定义错误号
message:用于指定错误信息,长度不能超过2048个字节
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值