【发布时间】:2014-12-04 23:46:43
【问题描述】:
我正在编写一个包含多个过程的 PLSQL 包,其中任何一个都可以生成我定义的异常,并且我已经在每个过程中处理了该异常。因此;
package BODY pkg
PROCEDURE first
BEGIN
.....
EXCEPTION
WHEN foobar ...
END first;
PROCEDURE second
BEGIN
.....
EXCEPTION
WHEN foobar ...
END second;
END pkg;
而且它有效。
但是,有没有办法定义一个异常处理程序,当它在包内的任何过程中引发时处理“foobar”,所以每个过程不需要一个异常部分来处理 foobar 条件?实际代码大约有十几个过程。
【问题讨论】:
-
否,除非您在每个过程调用之上添加另一个“集线器”过程作为接收层。
-
我希望如此,但这比工作更有价值。谢谢你,塞巴斯。
-
不管怎样,做你正在做的事情可能没问题。现实世界的场景是什么?
-
我不认为有这样的事情。也许您可以将引发该异常的逻辑封装在一个过程中,并始终从其他过程中调用该过程...