九、存储过程中异常的处理

2024-05-13

1. 九、存储过程中异常的处理

原则如下:
   1、存储过程中的异常要在本存储过程中进行处理。
   2、存储过程中调用存储过程,被调用的如果发生了异常,一般父存储过程需要终止。
   3、子存储过程中的异常处理不得污染父存储过程中的异常处理。
  
 在这样的原则下,每个存储过程都要进行异常的声明与处理,处理完毕之后要抛出异常对父存储过程进行中断,否则因为子存储过程中的异常已经得到了处理,父存储过程会继续执行下去。又因为不能使父存储过程的异常处理被污染,所以最好的处理异常的方式就是声明变量,该变量专门为异常而存在,发生异常则变量值改变,处理完异常后,在父存储过程中判断该变量的值,如果子存储过程中发生了异常,则主动抛出异常,中断父存储过程的运行,这样就能分清楚异常到底是发生在具体的哪个存储过程中了。所以以后的异常处理就采用强哥的那种方式了。
   如上。
   测试存储过程:
  
 关于raise_application_error的用法:
  
 综上,异常处理大概有两种方式:
  
 将异常保存到专门的表格中:
  
 日志类存储过程:
  
 测试类:
  
 在上面的示例中要注意事务控制,在日志类中采用自治事务。这样的话,每次commit就只提交本过程中的dml,而不会影响到调用本过程的其他过程的事务。

九、存储过程中异常的处理

最新文章
热门文章
推荐阅读