在本章中,我们将讨论 PL/SQL 中的异常。 异常是程序执行期间的错误情况。 PL/SQL 支持程序员在程序中使用 EXCEPTION 块来捕获此类情况,并对错误情况采取适当的措施。 有两种类型的异常 −
异常处理的一般语法如下。 在这里,您可以列出尽可能多的例外情况。 默认异常将使用 WHEN others THEN 处理 −
让我们编写一个代码来说明这个概念。 我们将使用我们在前几章中创建和使用的 CUSTOMERS 表 −
在 SQL 提示符下执行上述代码时,会产生以下结果 −
上面的程序显示给定 ID 的客户的姓名和地址。 由于我们的数据库中没有 ID 值为 8 的客户,因此程序会引发运行时异常 NO_DATA_FOUND,该异常会在 EXCEPTION 块 中捕获。
每当出现任何内部数据库错误时,数据库服务器都会自动引发异常,但程序员可以使用命令 RAISE 显式引发异常。 以下是引发异常的简单语法 −
您可以使用上述语法引发 Oracle 标准异常或任何用户定义的异常。 在下一节中,我们将为您提供一个引发用户定义异常的示例。 您可以以类似的方式引发 Oracle 标准异常。
PL/SQL 允许您根据程序的需要定义自己的异常。 必须声明用户定义的异常,然后使用 RAISE 语句或过程 DBMS_STANDARD.RAISE_APPLICATION_ERROR 显式引发。
声明异常的语法是 −
下面的例子说明了这个概念。 该程序要求提供客户 ID,当用户输入无效 ID 时,将引发异常 invalid_id。
在 SQL 提示符下执行上述代码时,会产生以下结果 −
PL/SQL 提供了许多预定义的异常,当程序违反任何数据库规则时会执行这些异常。 例如,当 SELECT INTO 语句不返回任何行时,会引发预定义的异常 NO_DATA_FOUND。 下表列出了一些重要的预定义异常 −
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/236096.html