WEB开发网
开发学院数据库Oracle 全面解析Oracle developer的异常处理机制 阅读

全面解析Oracle developer的异常处理机制

 2008-11-17 12:59:20 来源:WEB开发网   
核心提示: 如下代码所示: IF product_not_found THENRAISE_APPLICATION_ERROR(-20123,'Invald product code' TRUE);END IF;4、异常的处理 PL/SQL程序块的异常部分包含了程序处理错误的代码,当异常

如下代码所示:

IF product_not_found THEN
RAISE_APPLICATION_ERROR(-20123,'Invald product code' TRUE);
END IF;

4、异常的处理

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:全面 解析 Oracle

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