PL / SQL包级别的异常处理

马上回来

我有一个很简单的问题:在包级别可以进行异常处理吗?如果是,该如何实施?

我的程序包中包含过程和函数,如果发生NO_DATA_FOUND例外情况,我想在我的所有过程和函数中都执行相同的操作。

所以我的问题是:我可以写吗

WHEN NO_DATA_FOUND THEN

只需NO_DATA_FOUND在我的所有过程/函数中异常使用相同的行,或者我必须在每个过程/函数中都编写该异常处理程序。

马修·麦克佩克(Matthew McPeak)

不,不可能。我希望这不在语言中,因为它与异常处理程序的正确使用和预期使用不一致。

我适用的一般经验法则是:“如果您没有应对异常的特定且有帮助的事情,请不要抓住它”。

如果NO_DATA_FOUND在给定的情况下是预期的并且确定,并且您可以忽略它和/或为数据采用默认值,则您希望捕获并处理该值(而包级处理程序将无济于事,因为您的处理将视情况而定)。在所有其他情况下,您都不想抓住NO_DATA_FOUND-它代表了一个真正的例外:不应该发生的事情,超出设计假设的事情。让这些消息传播到最高级别,他们可以对其进行记录和/或将其报告给客户端。

但是,如果您解释了这是什么,那么您可能希望得到更好的答案,即希望程序包级异常处理程序执行该操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章