WEB开发网
开发学院数据库Oracle PL/SQL的异常处理机制的初步探讨 阅读

PL/SQL的异常处理机制的初步探讨

 2007-05-12 12:24:06 来源:WEB开发网   
核心提示: 这里replenish_inventory是一个触发器,处理异常PL/SQL程序块的异常部分包含了程序处理错误的代码,PL/SQL的异常处理机制的初步探讨(2),当异常被抛出时,一个异常陷阱就自动发生,如果没有找到相应的异常陷阱,那么将执行WHEN OTHERS,程序控制离开执行部分转入异

这里replenish_inventory是一个触发器。

处理异常

PL/SQL程序块的异常部分包含了程序处理错误的代码,当异常被抛出时,一个异常陷阱就自动发生,程序控制离开执行部分转入异常部分,一旦程序进入异常部分就不能再回到同一块的执行部分。下面是异常部分的一般语法:  EXCEPTION
   WHEN exception_name THEN
    Code for handing exception_name
   [WHEN another_exception THEN
    Code for handing another_exception]
   [WHEN others THEN
    code for handing any other exception.]

用户必须在独立的WHEN子串中为每个异常设计异常处理代码,WHEN OTHERS子串必须放置在最后面作为缺省处理器处理没有显式处理的异常。当异常发生时,控制转到异常部分,ORACLE查找当前异常相应的WHEN..THEN语句,捕捉异常,THEN之后的代码被执行,如果错误陷阱代码只是退出相应的嵌套块,那么程序将继续执行内部块END后面的语句。如果没有找到相应的异常陷阱,那么将执行WHEN OTHERS。在异常部分WHEN 子串没有数量限制。  EXCEPTION
  
   WHEN inventory_too_low THEN
    order_rec.staus:='backordered';
    replenish_inventory(inventory_nbr=>
    inventory_rec.sku,min_amount=>order_rec.qty-inventory_rec.qty);
   WHEN discontinued_item THEN
    --code for discontinued_item processing
   WHEN zero_divide THEN
    --code for zero_divide
   WHEN OTHERS THEN
    --code for any other exception
  END;

上一页  1 2 3 4 5  下一页

Tags:PL SQL 异常

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接