总结(异常处理及嵌套块).ppt

  1. 1、本文档共82页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
总结(异常处理及嵌套块)

PL/SQL 总结-3 目录 处理异常 捕获 Oracle Server 异常 捕获用户定义异常 识别变量作用域 处理异常 本部分将讲解: 在 PL/SQL 代码中包含异常处理代码的优点 PL/SQL 块异常处理部分的目的 异常处理指南 处理异常 前面学了如何在 PL/SQL 块中编写声明部分和执行部分. 所有要执行的 SQL 和 PL/SQL 代码都写在执行部分. 迄今为止我们假设代码只有编译错误. 然而, 代码会发生难以预料的运行时错误. 本部分学习如何在 PL/SQL 块中处理这些运行时错误. 什么是异常? 异常是程序的运行时错误,异常会中断程序的正常执行. 异常的产生有多种原因: 用户输入错误; 硬件错误; 网页不存在; 等等. 你使用应用程序和网站时遇到过错误吗? PL/SQL 中的异常 下例运行正常. 但是如果输入的是 Korea, South 而不是 Republic of Korea 呢? DECLARE v_country_name wf_countries.country_name%TYPE := 'Republic of Korea'; v_elevation wf_countries.highest_elevation%TYPE; BEGIN SELECT highest_elevation INTO v_elevation FROM wf_countries WHERE country_name = v_country_name; DBMS_OUTPUT.PUT_LINE(v_country_name); END; PL/SQL 中的异常 DECLARE v_country_name wf_countries.country_name%TYPE := 'Republic of Korea'; v_elevation wf_countries.highest_elevation%TYPE; BEGIN SELECT highest_elevation INTO v_elevation FROM wf_countries WHERE country_name = v_country_name; DBMS_OUTPUT.PUT_LINE(v_country_name); END; PL/SQL 中的异常 代码没有按预期的运行. 没有找到有关 Korea , South 的数据,因为国家名实际上是按 Republic of Korea 存储的. 这类 PL/SQL 错误称为异常. 异常发生时, 我们说异常被 “抛出”. 异常被抛出时, 异常点之后 PL/SQL 块执行部分的剩余代码不再执行. 什么是异常处理代码? 异常处理代码定义了异常发生后应当执行的恢复操作. 编写代码时, 程序员应当预见到代码执行时可能发生的错误的类型. 然后为每一种错误编写异常处理代码. 异常处理代码是程序员为代码错误编制的处理预案. 什么是异常处理代码? 程序员使用异常处理代码来处理哪些错误? 系统错误 (比如磁盘空间耗尽) 数据错误 (比如, 主键值重复) 用户错误 (比如, 数据输入错误) 很多其它的可能性 ! 为什么异常处理重要? 你能说明为什么异常处理如此重要吗? 可能的原因包括: 减轻错误对用户的 影响(频繁的错误使用户沮丧甚至拒绝使用程序) 保护数据库 (避免数据丢失或被覆盖) 错误消耗大量系统资源 (错误发生后, 纠正错误代价高昂; 用户频繁打电话请求帮助). 代码更加易读,因为错误处理代码可在同一个块中的独立部分处理错误. 处理 PL/SQL异常 PL/SQL 抛出异常, 块执行结束 但可编写异常处理代码,在块结束前执行最后的操作. 异常处理部分以关键字 EXCEPTION 开始. 处理 PL/SQL异常 异常如果被处理, PL/SQL 程序就不会突然中断. 异常抛出后, 控制转到异常处理部分 ,执行相应的处理代码. 之后,PL/SQL 块正常、成功结束. 一个时刻只能发生一个异常. 异常发生时, PL/SQL 在块结束前只执行一个异常处理代码. 处理 PL/SQL异常 点 A 的代码不会执行,因为 SELECT 语句失败. 处理 PL/SQL异常 下面是另一示例. 块中select 语句用于获取 John 的last_name. DECLARE v_lname VARCHAR2(15); BEGIN SELECT last_name INTO v_lname FROM employees WHERE first_name like 'El%'; DBMS_OUTPUT.PUT_

文档评论(0)

shaoye348 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档