Oracle异常

异常:在程序运行时出现的错误。
BEGIN
       EXCEPTION
             WHEN 异常名 THEN 对应异常处理;
             WHEN 异常名 THEN 对应异常处理;
             WHEN 异常名 THEN 对应异常处理;
END;

异常发生时,进入异常处理部分,具体异常与若干个WHEN子句中知名的异常名匹配,匹配成功就进入对应的异常处理部分,否则进入OTHERS(其他)进行处理。
BEGIN
       EXCEPTION
             WHEN TOO_MANY_ROWS THEN dbms_output.put_line('返回的记录太多');
             WHEN OTHERS THEN dbms_output.put_line('未知异常');
END;

1.自定义异常
定义:declare myexceptionEXCEPTION;
引发RAISE myexceptio;

2.引发应用程序异常
自定义异常指定异常码和异常信息, Oracle系统预定异常码范围介于-20000到-20999之间的负整数

引发应用程序异常语法:RAISE_APPLICATION_ERROR(异常码( -20000到-20999),异常信息);

eg:DECLARE myexception EXCEPTION;
      BEGIN
       
           RAISE myexception;
           EXCEPTION
                WHEN myexception THENRAISE_APPLICATION_ERROR(-20999,'AAAA');
                WHEN OTHERS THENdbms_output.put_line('未知异常');
     END;

如果要处理未命名的内部异常,必须使用OTHERS异常处理器,也可以使用 PRAGMAEXCEPTION_INIT把一个异常码与异常名绑定。PRAGMA由编译器控制,在编译时处理,而不是在运行时处理。EXCEPTION_INIT告诉编译器将异常名与Oracle错误码绑定起来,这样可以同多异常名引用任意的内部异常,并且可以通过异常名为异常编写适当的异常处理器。PRAGMAEXCEPTION_INIT(异常名,异常码);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值