异常处理过程和范例

目录

异常定义

异常关联

异常捕获与处理

查询 emp 数据表中工作岗位是 MANAGER 的员工信息,如果不存在这个员工,则输出“没有数据记录返回”,如果存在多个记录,则输出“返回数据记录超过一行”

更新数据表 emp 中部门编号,由于该部门编号与 dept 数据表中字段 deptno 相关联,因此会出现错误“ORA-02291: 违反完整约束条件(SCOTT.FK_DEPTNO) - 未找到父项关键字”,编程进行这种异常处理

更新 emp 表中的信息,如果没有发现记录,则进行异常处理


Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645

在 PL/SQL 程序中,错误处理的基本步骤如下

异常定义

在声明部分定义错误异常,其中预定义异常系统已经定义,其他两种异常需要用户定义。基本语法如下所示。

异常变量 excption

如果是非预定义的异常,还需要为错误编号关联这个异常变量,基本语法如下所示。

prama excption_init(异常变量,-######)

其中,“#####”为 Oracle 的错误编号

异常关联

在执行部分当错误发生的时候关联与错误对应的异常。

由于系统可以自动识别 Oracle 内部错误,所以当错误发生时系统会自动关联与之对应的预定义异常或非预定义异常,

但是,用户定义的错误,系统无法自动识别,需要用户编程用于关联,关联的语法如下所示

raise user_define_recption

异常捕获与处理

当错误产生的时候,在异常处理部分通过异常处理器捕获异常并进行异常处理。其基本语法如下所示。

EXCEPTION
WHEN 异常 1 [OR 异常......] THEN 处理序列语句 1;
WHEN 异常 2 [OR 异常......] THEN 处理序列语句 2;
...
WHEN 异常 n [OR 异常......] THEN 处理序列语句 n ;
END;

一个异常只能被一个异常处理器捕获,并进行处理。

一个处理器可以捕获多个异常,此时通过 OR 连接。

查询 emp 数据表中工作岗位是 MANAGER 的员工信息,如果不存在这个员工,则输出“没有数据记录返回”,如果存在多个记录,则输出“返回数据记录超过一行”

分析:

这个范例属于预定义异常的情况,在查询数据记录的时候,如果出现多行记录或者没有记录时,

Oracle 系统内部对这些情况有对应的处理,用户无须在程序中定义,是由 Oracle 自动触发

在异常处理部分,根据捕获的异常情况,执行不同的操作

更新数据表 emp 中部门编号,由于该部门编号与 dept 数据表中字段 deptno 相关联,因此会出现错误“ORA-02291: 违反完整约束条件(SCOTT.FK_DEPTNO) - 未找到父项关键字”,编程进行这种异常处理

分析:

这属于非预定义异常,由于预定义异常只是与一部分 Oracle 错误相连的异常,

所以如果要处理没有与预定义异常对应的 Oracle 错误时,则需要为这些 Oracle 错误声明相应的非预定义异常。

声明这样的异常需要使用 EXCEPTION_INIT 编译指令

通过 EXCEPTION_INIT,一个自定义异常只能和一个 Oracle 错误相连,在异常处理语句中,捕获这个异常,显示指定提示信息

前面介绍的预定义异常和非预定义异常,都有 Oracle 系统判断的错误。

下面这个范例是自定义异常的处理,自定义异常由 RAISE 语句产生,当一个异常产生时,

控制权立即转交给块的异常处理部分。其中 RAISE 抛出异常有 3 种方法 

(1)RAISE EXCEPTION :用于抛出当前程序中定义的异常或在 standard 中的系统异常。

(2)RAISE PACKAGE.EXCEPTION :用于抛出定义在非标准包中的有一些异常,如 UTL_FILE,DBMS_SQL 以及程序员创建的包中异常

(3)RAISE :不带任何参数,这种情况只出现在希望将当前的异常传到外部程序时

更新 emp 表中的信息,如果没有发现记录,则进行异常处理

 

通过 RAISE 抛出异常,然后在异常处理部分显示自定义结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/531357.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

产品推荐 | iWave 的 FPGA-IP 评估附加 FMC 卡

1、产品概述 iWave 的 FPGA-IP 评估附加 FMC 卡旨在满足 ANSI/VITA 57.1 FMC 标准。该卡支持高引脚数 (HPC) 和低引脚数 (LPC) 连接器,可在风冷环境中使用。FPGA-IP评估附加卡可以与市场上的大多数FPGA开发套件连接。…

LeetCode 994—— 腐烂的橘子

阅读目录 1. 题目2. 解题思路3. 代码实现 1. 题目 2. 解题思路 1.记录下初始新鲜橘子的位置到 notRotting,我们按照行把二维数组拉成一维,所以,一个vector 就可以实现了;2.如果没有新鲜橘子,那么第 0 分钟所有橘子已经…

44-技术演进(下):软件架构和应用生命周期技术演进之路

应用、系统资源、应用生命周期管理这 3 个维度,构成了我们对云的所有诉求。 我会介绍下应用维度和应用生命周期管理维度的技术演进。 我们就先来看下软件架构的演进之路。 软件架构的演进 软件架构技术演进如下图所示: 单体架构 在单体架构中&#xff…

浅聊java集合框架中的java.util.LinkedList

java集合框架总览 Java集合框架是一个用来代表和操纵集合的统一架构,它为管理和组织对象的集合提供了一组类和接口。这个框架包含三个主要部分:接口、实现和算法。 接口: Collection:这是集合框架的根接口,定义了集…

vue 上传视频

controlslist 属性可以用于告诉浏览器在视频播放过程中应该显示哪些默认的用户界面控件 代码&#xff1a; <template><div class"schematicDiagramIndex"><el-container><el-header v-if"this.radiooCar1"><el-button click&qu…

【精选】发布应用到应用商店的基本介绍

摘要 本文旨在介绍如何在各大应用商店发布应用&#xff0c;包括市场选择、准备材料、上架步骤以及常见被拒原因及解决方法。通过详细的步骤和经验分享&#xff0c;帮助开发者顺利将应用推向市场。 引言 随着移动应用市场的不断发展&#xff0c;越来越多的开发者希望将他们的…

如何关闭WordPress的自动更新功能

Wordpress为什么自动更新 WordPress自动更新是为了提供更好的安全性和稳定性。 安全性&#xff1a;WordPress是一个广泛使用的内容管理系统&#xff0c;因此成为恶意攻击的目标。WordPress的自动更新功能确保你的网站及时获得最新的安全补丁和修复程序&#xff0c;以保护你的网…

自动化测试selenium(1)

目录 什么是自动化测试 自动化测试 单元测试 接口测试 UI自动化测试 适合做自动化测试的项目 如何实施自动化测试 自动化测试需要了解的技能 selenium介绍 特性 原理 什么是自动化测试 自动化测试 自动化测试是指软件测试的自动化, 在预设状态下运行应用程序或者系…

标准 I/O 库

直接使用系统调用的缺点&#xff1a; (1) 影响系统性能 系统调用比普通函数调用开销大 因为&#xff0c;频繁的系统调用要进行用户空间和内核空间的切换 (2) 系统调用一次所能读写的数据量大小&#xff0c;受硬件的限制 解决方案&#xff1a;使用带缓冲功能的标准I/O库&#x…

RocketMQ笔记(七)SpringBoot整合RocketMQ发送事务消息

目录 一、简介1.1、流程图1.2、事务消息流程介绍 二、Maven依赖三、生产者3.1、application配置3.2、员工表3.3、实体3.4、持久层3.5、监听器 四、测试4.1、普通消息4.2、事务消息4.2.1、消费者4.2.2、正常提交4.2.3、异常提交 五、其他5.1、接口说明5.2、checkLocalTransactio…

智能传真机触摸屏中应用的触摸感应芯片

智能传真机是应用扫描和光电变换技术&#xff0c;把文件、图表、照片等静止图像转换成电信号&#xff0c;传送到接收端&#xff0c;以记录形式进行复制的通信设备。智能传真机将需发送的原件按照规定的顺序&#xff0c;通过光学扫描系统分解成许多微小单元&#xff08;称为像素…

AXS4110 单节锂电池保护芯片 爱协生 兼容XB6042/CM1124 低成本

概述 AXS4110系列产品是一种针对锂离子或聚合物电池保护的高集成解决方案芯片。AXS4110系列包含先进的功率MOSFET、高精度电压检测电路和延时电路。AXS4110系列采用DFN1x1x0.37_4封装&#xff0c;使其成为小体积电池保护的理想解决方案。 AXS4110具有过充、过放、过流、0V充电…

SpirngBoot开发常用知识

springboot开发常用知识 命令行打包SpringBoot打包插件window端口命令临时属性设置热部署启动热部署热部署范围 常用计量单位数据校验加载测试的专用属性Web环境模拟测试如何发送虚拟请求业务层测试回滚随机产生测试用例内置数据源 命令行打包 对SpringBoot项目进行打包命令行…

液冷是大模型对算力需求的必然选择?|英伟达 GTC 2024六大亮点

在这个以高性能计算和大模型推动未来通用人工智能时代&#xff0c;算力已成为科技发展的隐形支柱。本文将重点探讨算力的演进&#xff0c;深入分析在不同领域中算力如何成为推动进步的基石&#xff1b;着眼于液冷如何突破算力瓶颈成为引领未来的先锋&#xff0c;对液冷散热的三…

智慧城市中的物联网革命——青创智通

工业物联网解决方案-工业IOT-青创智通 得益于物联网 (IoT)的变革力量&#xff0c;智慧城市的概念正在迅速成为现实。物联网正在从根本上改变城市的运作方式&#xff0c;为城市居民带来更高的效率、可持续性和生活质量。在本文中&#xff0c;我们将探讨物联网在智慧城市中的作用…

小程序商城免费搭建之java商城 电子商务Spring Cloud+Spring Boot+二次开发+mybatis+MQ+VR全景

1. 涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买家平台&#xff08;H5/公众号、小程序、APP端&#xff08;IOS/Android&#xff09;、微服务平台&#xff08;业务服务&#xff09; 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis 3. 前端框架…

面对DDOS攻击,有哪些解决办法

随着互联网带宽的持续增长以及DDOS黑客技术的发展&#xff0c;DDOS拒绝服务攻击的实施变得愈发容易。商业竞争、打击报复、网络敲诈等多种因素&#xff0c;各行各业的用户都曾受到DDOS攻击的威胁。 一旦遭受到DDOS攻击&#xff0c;随之而来的就是业务宕机&#xff0c;用户无法…

【必看】网络安全从业者书单推荐

推荐几本网络安全从业者必读的书籍 一、计算机基础 《网络硬件设备完全技术宝典》&#xff08;第3版&#xff09; 本书共768页&#xff0c;包括交换机、路由器、安全设备、网络设备等重要和常用的网络设备&#xff0c;图文并茂&#xff0c;语言流畅&#xff0c;内容及其丰富…

NL2SQL基础系列(2):主流大模型与微调方法精选集,Text2SQL经典算法技术回顾七年发展脉络梳理

NL2SQL基础系列(2)&#xff1a;主流大模型与微调方法精选集&#xff0c;Text2SQL经典算法技术回顾七年发展脉络梳理 Text-to-SQL&#xff08;或者Text2SQL&#xff09;&#xff0c;顾名思义就是把文本转化为SQL语言&#xff0c;更学术一点的定义是&#xff1a;把数据库领域下的…

MQ之————如何保证消息的可靠性

MQ之保证消息的可靠性 1.消费端消息可靠性保证&#xff1a; 1.1 消息确认&#xff08;Acknowledgements&#xff09;&#xff1a; 消费者在接收到消息后&#xff0c;默认情况下RabbitMQ会自动确认消息&#xff08;autoAcktrue&#xff09;。为保证消息可靠性&#xff0c;可以…