plsql的exception用法

对exception的用户比较糊涂,专门记录总结一下,方便自己查看
plsql的异常处理通常是处理运行异常
声明异常:
1.用户自定义异常
declare e_myexception EXCEPTION;
2.系统预定义异常
常见:
no_data_found:出现在select into
invalid_cursor:非法的游标
value_error:转换,运算

抛出异常:与java异常抛出类似
raise myexception

处理异常:某个异常最多由异常部门一个处理器进行处理
exception
when 异常名 then
执行语句;
when 异常名 then
执行语句;
when OTHERS THEN
执行语句;
END;
others异常处理其他异常所不能捕获的异常
在others中记录具体错误 SQLCODE,SQLERRM
V_errcode := SQLCODE;
V_errortext := SQLERRM;
insert into log values (v_errcode,v_errortext);

exception_init编译指示
把某异常与特定的oracle错误关联起来
declare
e_missingnull exception;
pragma exception_init(e_missingnull,-1200);

raise_application_error创建自己的错误消息
raise_application_error(error_number,error_message,[keep_errors]);
error_number:-20000和-20999之间的数字
error_message:自定义小于512个字符
keep_errors:默认为false

异常的传播:
1.如果当前语句块有该异常处理器,执行,完成该语句块,控制权传递到外层
2.如果当前语句块没有该异常处理器,则通过外部语句块来传播该异常
3.声明部门异常,直接调到外层异常处理
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值