异常处理过程和范例

news2024/11/26 2:42:08

目录

异常定义

异常关联

异常捕获与处理

查询 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 抛出异常,然后在异常处理部分显示自定义结果

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Proxmox VE qm 方式备份虚拟机

前言 使用qm 备份Proxmox VE虚拟机,高效便捷。 登录Proxmox VE shell 执行备份操作 备份建议关闭虚拟机 qm shutdown 虚拟机名称号--compress 备份格式 0(代表vma格式) gzip lzo zstd--storage local(备份的位置)备份默认位置/var/lib/…

1130 - Host ‘36.161.238.56‘ is not allowed to connect to this MySQL server如何处理

1、背景 我在阿里云的ecs安装好了mysql,并且已经安装成功了,我使用navcat客户端连接自己的mysql的时候,却报错:1130 - Host 36.161.238.56 is not allowed to connect to this MySQL server 2、解决 2.1 在服务器终端使用命令行…

Savitzky-Golay滤波器基本原理

本文介绍Savitzky-Golay滤波器基本原理。 Savitzky-Golay滤波器(简称为S-G滤波器)被广泛地运用于数据平滑去噪,它是一种在时域内基于局域多项式最小二乘法拟合的滤波方法。这种滤波器最大的特点在于在滤除噪声的同时确保信号的形状&#xff…

基于Web的农产品销售管理系统

1 课题简介 1.1 选题背景 自宇宙出现盘古开天依赖,万事万物就在不断的进步更新淘汰弱者,现在到了如今人们进入了互联网上帝世纪,越来越多的事物和工作都可以在网上用数据流代替和执行,不必再像以前一样亲自出面和出门做事&#…

文件上传 = 拖拽 + 多文件 + 文件夹

❝ 从前往后看都是努力,从后往前看都是命运 ❞ 大家好,我是「柒八九」。一个「专注于前端开发技术/Rust及AI应用知识分享」的Coder 前言 今天呢,和大家聊点耳熟能详的东西。「文件上传」。 讲到这里,大家不要嗤之以鼻,…

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

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

linux网络服务学习(6):多路径multipath解决iscsi多网卡识别错误问题

1.什么是多路径 1.1路径 物理层面一条数据的访问通道 访问方式: (1)以太网卡双绞网线以太网交换机 (2)HBA光纤卡光纤线光纤交换机 访问过程: (1)冗余链路failover&#xff1a…

java 23种设计模型讲解跟实例

java 23种设计模式讲解跟实例 什么是设计模式设计模式分类六大设计原则 创建型模式单例模式(singleton)工厂方法模式建造者模式抽象工厂模式原型模式 结构型模式适配器模式桥接模式组合模式装饰模式外观模式享元模式代理模式 行为型模式责任链模式命令模…

从零开始学Python(五)面向对象

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Python的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一.类的定义 二.魔法方法 1.概念 2.常…

RabbitMQ-canal 监听本地数据库 -收不到消息解决方法

一、当我们配置好canal 的配置文件后 发现log 日志不报错,但是消息队列就是监听不到数据库的消息。 二、解决方法 在mysql 的ini 配置文件中加入下列代码 connect_timeout60 # 将默认值(如30秒)改为60秒 wait_timeout28800 # 将空闲连接超时…

安防视频监控/视频集中存储EasyCVR平台开启鉴权后设备列表不展示是为什么?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,EasyCVR基于云边端一体化架构,具有强大的数据接入、处理及分发能力,可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、…

阿里同学聊测试开发与测试平台

在一线大厂,没有测试这个岗位,只有测开这个岗位,即使是做业务测试,那么你的title也是测开。 所以想聊一聊测开的看法,但不代表这是正确的看法,仅供参考。 没来阿里之前我对测开的看法 一直以为专职做自动…

京东重押AI,普通人如何把握AI短视频直播的机遇?

京东重押AI,普通人如何把握AI短视频直播的机遇? 现在普通人没有大厂那样,有雄厚资金财力支撑的,但是又想在AI赛道上把握机遇,那选择就相当重要了,要选择一个真正适合自己的AI项目。 餐赞是一家专注于生活服…

截图识别公式软件都有哪些?分享3个工具!

在学术、教育、科研等领域,公式是不可或缺的一部分。然而,有时我们可能会遇到需要将纸质或屏幕上的公式快速转换为电子文本的情况。这时,一款能够准确识别截图中公式的软件就显得尤为重要。本文将介绍几款可以截图识别公式的软件,…

【数据结构与算法】:快速排序和归并排序的非递归实现

1. 递归实现的缺陷 在以前的文章中我们把快速排序和归并排序的递归实现方式进行了介绍,但是在校招面试和在企业的日常开发过程中,仅掌握递归方法是不够的,因为递归也有它的缺陷。 我们知道在函数调用过程中会在内存中建立栈帧,栈…

【多线程】线程(线程的概念+线程的创建)

文章目录 线程一、线程的概念1.引入线程的目的2.什么叫线程(Thread)1.线程的特点:2.进程和线程的区别(面试题):3.Java的多线程编程 二、创建线程1.继承Thread重写run入口方法:使用jconsolesleep…

文件夹变应用?数据恢复大解密!

在日常使用电脑的过程中,许多用户可能都曾遭遇过这样一个奇怪的现象:原本用来存放文件的普通文件夹,突然变成了应用程序的图标。这种突如其来的变化不仅令人困惑,更可能导致重要数据的丢失或损坏。那么,究竟是什么原因…

最佳UI设计软件推荐:全球顶尖工具一览!

在这个信息化、数字化的时代,我们的生活、工作,甚至娱乐,都被各种各样的网站所包围。随着技术的发展,人们对网页UI设计的要求也越来越高。所以问题是,作为一个想要提高他们的UI设计能力的设计师,你应该如何…

渗透学习第一天:DR4G0N B4LL靶场复现

0x00 环境搭建 攻击机为kali Linux,IP为192.168.71.129 靶机IP地址目前不知道,但是是和kali同网段的 0x01 信息收集 由于不知道目标的IP地址,这里我采用了arp scan对本机的整个网段进行扫描 发现目标IP为192.168.71.130。对目标IP进行端…

高校人事管理系统业务分析

目标用户 大学人事部门,其他部门、院系、个人 解决问题 人事部门按业务划分了很多科室、数据分散、工作流程杂乱、工作效率低。 主要功能模块 人事综合管理平台、个人自助服务平台、人才招聘管理系统、薪酬管理子系统、职称评审子系统、绩效考核子系统组成。