ITPub博客

首页 > 数据库 > Oracle > oracle主动抛出异常

oracle主动抛出异常

Oracle 作者:strivechao 时间:2021-05-24 11:49:17 0 删除 编辑

RAISE_APPLICATION_ERROR内建函数用于抛出一个异常并给异常赋予一个错误号以及错误信息。自定义异常的缺省错误号是+1,缺省信息是User_Defined_Exception。RAISE_APPLICATION_ERROR函数能够在pl/sql程序块的执行部分和异常部分调用,显式抛出带特殊错误号的命名异常。  Raise_application_error(error_number,message[,true,false]))

  

  错误号的范围是-20,000到-20,999。错误信息是文本字符串,最多为2048字节。TRUE和FALSE表示是添加(TRUE)进错误堆(ERROR STACK)还是覆盖(overwrite)错误堆(FALSE)。缺省情况下是FALSE。

  

  如下代码所示:

  IF product_not_found THEN

  RAISE_APPLICATION_ERROR(-1111, 'Invald product code', TRUE);

  END IF;


存储过程中的when others then 和 raise


XCEPTION
  when others then
    rollback;
    dbms_output.put_line('code:' || sqlcode);
    dbms_output.put_line('errm:' || sqlerrm);
    raise;
when others then和raise;
分别是什么意思
 

异常分很多种类,如NO_FOUND。others处本应该写异常名称,如果不想把异常分得那麼细,可以笼统一点用others来捕获,
即所有异常均用others来捕获。
when others then表示是其它异常。
raise表示抛出异常,让User可以看到。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25469263/viewspace-2773616/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2018-06-21

  • 博文量
    101
  • 访问量
    232475